form1.cn
Make a little progress every day

Linux中nohup不挂断运行命令

25th of November 2016 Linux Command 2521

nohup就是不挂起的意思( n ohang up)
该命令的一般形式为:nohup command &
语法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

# nohup command > myout.file 2>&1 &

在上面的例子中,输出被重定向到myout.file文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

例子:

# nohup /usr/local/php5/bin/php /Scriptphp/livechange.php &
# ps -ef | grep php
# root     13354     1  0 Nov24 ?        00:00:00 /usr/local/php5/bin/php /Scriptphp/livechange.php

在执行nohup后,livechange.php 会在后台不挂断运行,使用ps -ef 可以查到到进程,nohup.out会保存到/Scriptphp(需要读写权限)

centos中nohup配置

将写好的脚本上传服务器,然后进入到php文件上传的位置,
然后运行:nohup /usr/local/php/bin/php putSms.php > /data/scriptLogs/putSms.out
然后ctrl+z
然后输入bg
即成功加入脚本