用nohup和screen让脚本在linux的后台运行
nohup的使用
nohup php server.php &
在输入命令后会得到一个进程ID的返回
$ nohup php server.php & [1] 10769
这样即使退出了终端,server.php依然在后台运行。
查看运行的后台进程
jobs -l
注意:jobs命令仅限于未关闭终端的情况使用。
关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps
(进程查看命令)
ps -ef
使用方法
ps -aux|grep server.php
运行结果
$ ps -aux|grep server.php root 10769 0.6 1.7 569612 17360 ? S 11:48 0:04 php server.php root 11387 0.0 0.0 112704 980 pts/0 R+ 12:00 0:00 grep --color=auto server.php
参数说明
- a:显示所有程序
- u:以用户为主的格式来显示
- x:显示所有程序,不以终端机来区分
进程的结束
在上面我们其实已经通过ps -aux|grep
得到了后台运行进程信息,这里有个更简单的方法:
ps -ef | grep php
结果
ps -ef | grep php root 10769 1 0 11:48 ? 00:00:06 php server.php root 11806 11133 0 12:09 pts/0 00:00:00 grep --color=auto php
结束
kill 10769
screen的使用
You can use screen
to open a virtual terminal, where the script can run.
I recommend to use screen -S php_script
. Then you can run your script (even without &). With CTRL + A, D
you can disconnect from the termial. You can reconnect with screen -r
back to the terminal.
REF: