这个就是nginx 的80 端口被占用了 我们时常在nginx启动或者关闭关闭过多的情况下出现的
1、检查80端口被什么程序占用
fuser -n tcp 80
如
root@gaojin-R410IU:/home/gaojin# fuser -n tcp 80
80/tcp: 1116
2、删除对应的程序进程即可
3、如果确认就只有nginx占用,也可以直接结束nginx的所有进程
好的再次 /etc/init.d/nginx start 就正常启动了
本文链接
storysnail的Linux串口编程笔记
Develop Team : 7fane Team (http://www.7fane.com,测试网站,到2013年11月底)
Editor : Yang QiuXi
Art Designer : He YiJun
License : 7fane Team License 1.0
Last Update : 2013-03-26
这半个月因肺部感染而不得不暂时终止那令人生厌的中石油巡检工作,闭门在家安静的
修养。整月的工钱自然是泡汤了,可却得来了极其珍贵的个人闲暇时光,让我能淋漓尽致的
做软件方面的研究,虽是粗茶淡饭,针剂苦药,但可静心埋头于书房,却比天堂还甜美!
恍惚已至月末,工作单位来了音讯,让我一下子从甜美的梦中惊醒,从哪里来,回哪里
去,这种如"主体思想"一样可怕的思维是我挥之不去的梦魇,无奈、不知所措、病弱的身体
却不由自主的向那发声的地方靠去!
好了,还是不再发牢骚了,只是个人觉得这种臃肿低效的国企能够存在,本身就是对“
国富论”绝佳的嘲讽,我只能用世界是多元的来啊Q一下了!
切入正题,这段时间做GSM/GPRG和GPS的小东西,需要通过串口发送AT指令来控制,以前
调试一直在用串口助手和minicom之类的现成软件,可是一点都不爽,为什么不自己写个操作
串口的软件,就像在ARM和stm32上一样!
这文章其实只是我的一个笔记,分为两篇,一篇是《storysnail的Windows串口编程笔记》,
另一篇是《storysnail的Linux串口编程笔记》,由于网上已经有非常多的类似文章,有些长篇
大论,有些短小精悍,连我自己都思考过是否有必要再写一篇,但在Ling的鼓动下还是写了!
本篇是Linux串口编程笔记,详细介绍了串口通信会用到的api函数,并提供了一个示例程序,
这个示例程序是在EEEPC701的debian系统上编写测试的。
一:写串口程序用到的函数
1:Linux与windows串口设备文件名对照
Windows COM1 COM2 COMX(我的系统上X=4)
Linux /dev/ttyS0 /dev/ttyS1 /dev/ttyUSB0
2:写串口程序用到的函数
串行通讯函数定义在termios.h头文件中,所以需要包含该文件。下面是要介绍的函数列表
close 关闭串口
read 接收数据
write 发送数据
fcntl 设置IO为阻塞或非阻塞
ioctl 实现POSIX.1 GTI控制界面所有函数功能
tcgetattr 读取串口设备的当前属性,保存在termios_p所指向的结构中
tcsetattr 设置串口设备的当前属性
cfgetospeed 返回输出波特率
cfgetispeed 返回输入波特率
cfsetispeed 设定输入波特率
cfsetospeed 设定输出波特率
2.1
open
用途:打开串口
原型:int open( const char * pathname,int flags);
参数说明:
pathname: 指向欲打开的文件路径字符串
flags 所能使用的标志位:
O_RDONLY 以只读方式打开文件
O_WRONLY 以只写方式打开文件
O_RDWR 以可读写方式打开文件。
O_RDONLY、O_WRONLY、O_RDWR标志位是互斥的,不可同时使用,但可与下列的
标志位|运算组合。
O_CREAT 若欲打开的文件不存在则自动建立该文件。
O_EXCL 如果O_CREAT 也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,
否则将导致打开文件错误。此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为
符号连接,则会打开文件失败。
O_NOCTTY 表明本程序不是该串口上的“控制终端”。即本程序不受Ctrl+c、Ctrl+z这类
组合键产生的信号影响。
O_TRUNC 若文件存在并且以可写的方式打开时,此标志位会令文件长度清为0,
而原来存于该文件的 资料也会消失。
O_APPEND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。
O_NONBLOCK 非阻塞模式打开。在打开很多串行端口设备时,open函数有时候会阻塞很长一段
时间.例如当打开一个调制解调器的端口就会阻塞直到DCD信号线有信号电压为止,
如果串口的另一端没有连接任何设备,那么DCD信号线上就不会有信号电压,这会
导致open函数一直阻塞在那里等待DCD信号,导致程序失去响应。使用该选项
程序会忽略DCD信号线上的信号。所以为了无阻塞地打开一个文件但不影响正常的
阻塞IO,必须先用O_NONBLOCK选项调用open函数,然后使用fcntl切换到非阻塞IO
状态。
O_NDELAY 其实和O_NONBLOCK基本相同,所产生的结果都是使I/O变成非阻塞模式,唯一的
一点差别是O_NDELAY会让函数马上返回0,而O_NONBLOCK在读不到数据时会返回-1,
并且设置errno为EAGAIN。在GNU C中O_NDELAY只是为了与BSD的程序兼容,实际上
在fcntl.h中是使用O_NONBLOCK作为宏定义,所以建议现在使用O_NONBLOCK.
#define O_NDELAY O_NONBLOCK
O_SYNC 以同步的方式打开文件。
O_NOFOLLOW 如果参数pathname 所指的文件为一符号连接,则会令打开文件失败。
查看、设置当前系统时间:date
选项:
-u:查看格林威治时间
格式化显示时间:+%Y--%m--%d
-s:设置时间,例如:date –s "20:20:00"
显示硬件时间:hwclock(或clock)
查看日历:cal
查看系统运行时间:uptime
输出、查看命令:
echo :显示输入的内容
cat:显示文件内容
more:向下翻页显示文件内容;
less:向上向下翻页显示文件内容。(空格键向下翻,上下键可上、下翻)
head:显示文件头10行(默认)
-n:指定显示的行数
tail:显示文件尾10行(默认)
-n:指定行数
-f:不结束命令,继续
查看硬件信息:
lspci:查看pci设备
-v:查看详细信息
lsusb:查看usb设备
-v:查看详细信息
lsmod:查看加载的模块(驱动)
关机、重启:
shutdown:关机、重启
-h:关机
-r:重启
如: 立即关机:shutdown –h now
10分钟后关机: shutdown –h +10
23:30分关机:shutdown –h 23:30
立即重启: shutdown –r now
poweroff:立即关闭计算机
reboot:立即重启计算机
归档、压缩:
zip:压缩文件
zip linuxcast.zip myfile
upzip:解压缩文件
unzip linuxcast.zip
gzip:gzip算法压缩文件
gzip linuxcast.net
tar:归档文件(不压缩,只打包)
tar –cvf out.tar linuxcast (打包)
tar –xcf out.tar (解开)
tar –cvzf backup.tar.gz /etc (-z参数将归档后的归档文件进行gzip压缩)
查找文件(夹):
locate快速查找文件、文件夹:
locate keyword
此命令需预先建立数据库,默认每天更新一次。使用updatedb 命令手工建立、更新数据库。
find:经典的查找命令,可进行高级查找文件、文件夹,查找速度比locate慢:
find 查找位置 查找参数
如:
find . –name *linuxcast* :查找当前文件夹,并基于文件名,包含linuxcast关键字。
find / -name *.conf:查找根目录,并基于文件名,后缀为.conf。
find / -perm 777:查找根目录下所有权限为777的文件。
find / -type d:查找根目录下的目录。
find . –name "a*" –exec ls –l {} \:查找当前目录下以a开头的文件,并以参数传递给ls –l命令。
find常用的查找条件:
-name:基于文件名;
-perm:基于权限值;
-user:基于所属用户
-group:基于特定用户组
-ctime:基于修改时间
-type:基于类型
-size:基于文件大小
本文链接