Linux下从shell启动的前台程序属于当前shell的子进程,尽管可以在命令后加上 &
符号,使得其在后台运行,但当登出shell后,仍旧会将其终止。
可以使用 nohup 命令,在登出shell后,仍然令它继续运行。
命令:
nohup your_program >program.log 2>&1 &
实验 比如yii的命令行程序:
php yii cmd/index
后台运行:
nohup /usr/bin/php yii cmd/index > runtime/logs/nohup.log 2>&1 &
关闭终端,然后重新登入,查看进程还在运行:ps aux | grep php
查看进程在持续工作,输出内容:tail -f nohup.log
可以用 kill
命令杀掉程序。