Linux中让进程在后台运行可以使用命令:nohup command &,例如:nohup java -jar *.jar &,关闭终端后该进程依然存在。
nohup的用途就是让提交的命令忽略 hangup 信号,使用方法:
$nohup ping www.163.com &
如果没有重定向输入和输出的话,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般像示例一样,加上 "&" 来将命令同时放入后台运行,也可用"> filename 2>&1"来更改缺省的重定向文件名。退出shell后,ping会继续运行,直到命令执行结束。
$ ps -ef |grep ping
sszheng 5377 5311 0 16:51 pts/1 00:00:00 ping www.163.com
sszheng 5379 5311 0 16:51 pts/1 00:00:00 grep ping
nohup的用途就是让提交的命令忽略 hangup 信号,使用方法:
$nohup ping www.163.com &
如果没有重定向输入和输出的话,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般像示例一样,加上 "&" 来将命令同时放入后台运行,也可用"> filename 2>&1"来更改缺省的重定向文件名。退出shell后,ping会继续运行,直到命令执行结束。
$ ps -ef |grep ping
sszheng 5377 5311 0 16:51 pts/1 00:00:00 ping www.163.com
sszheng 5379 5311 0 16:51 pts/1 00:00:00 grep ping
退出shell后,重新登陆查看,ping进程依然在执行,只不过他的PPID变成了1,也就是被init所管理的孤儿进程了。
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。