linux后台运行程序,nohup 和&结合使用
nohup 和&区别
使用&后台运行程序:
- 结果会输出到终端
- 使用Ctrl + C发送SIGINT信号,程序免疫
- 关闭session发送SIGHUP信号,程序关闭
使用nohup运行程序:
- 结果默认会输出到nohup.out
- 使用Ctrl + C发送SIGINT信号,程序关闭
- 关闭session发送SIGHUP信号,程序免疫
1. 后台进程 命令后加&使程序后台运行,终端可以继续其他操作
缺点:依赖终端
此时使用fg命令可以恢复前台执行
ps:后台进程并未完全脱离终端,在终端未关闭前还是会往终端输出结果,后台程序会随shell退出而停止
2.守护进程 nohup命令
缺点:占用终端
用途:不挂断地运行命令,即使终端ssh关闭了也一直运行
语法:nohup command [arg ...] [ & ]
nohup会把程序的标准输出写入当前目录下的nohup.out文件,没有写入权限则写入$HOME下
关闭终端,新开一个,进程还在继续
查看进程
ps -ef | grep time.php
3.结合nohup 和 & 实现不占用也不依赖终端,
nohup php /www/wwwroot/hb/application/common/pusb.php &
jobs -l
关闭后台进程
方式一: 使用kill
jobs -l
kill -9 pid
方式二 :fg切到后台再Ctrl+c
fg