linux后台运行程序
1 nohup命令
通常想让某个程序在后台运行,可以在命令末尾添加&。
但是如果遇到断网或关闭终端时,系统会向前后台进程发送SIGHUP信号,使得命令被迫终止。
为了避免退出用户进程自动关闭的情况,我们可以采用nohup命令。
语法:nohup Command [Arg...] [&]
描述:执行commnand[arg]命令,并忽略所有挂断信号(SIGHUP)。默认标准输出和标准错误默认重定向到nohup.out文件中。
命令:nohup ./start-dishi.sh 1>output 2>error &
或者 nohup ./**.sh >output 2>&1 & (将标准错误输出(2)重定向到标准输出(1)中,&代表后台运行)
p.s. 1.如果不关心输出且输出很大时可以 重定向到/dev/null中。所有东西都可以定向到/dev/null,但是无法打开。
p.s. 2.操作系统中的常用的三个流:
0:标准输入流 stdin
1:标准输出流 stdout
2:标准错误流 stderr
一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。
p.s. 3.在使用nohup python **.py & 时nohup.out 文件内容始终为空,直到运行结束。这里是由于python 开启输出缓存导致的,可以加参数-u避免使用输出缓存。
2 screen命令
然鹅,nohup命令使用起来还是比较麻烦的。 因此强烈建议使用screen命令。通过screen 命令可以进行多窗口的管理,终端关闭时自动挂起进程到后台执行。总体是非常方便的。具体使用的命令可以参见下面的链接。
参考链接:
nohup:
https://www.cnblogs.com/zq-inlook/p/3577003.html
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
screen:
http://man.linuxde.net/screen
https://www.ibm.com/developerworks/cn/linux/l-cn-screen/

浙公网安备 33010602011771号