nohup和&搭配,后台运行命令
不挂断的运行命令:nohup Command [ Arg … ] [&]
nohup的输出都将附加到当前目录的 nohup.out 文件中
参考链接:nohup命令
nohup test.sh &
nohup test.sh > test.log 2>&1 &
2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 test.log 文件中。也可以使用:
nohup test.sh 2> test.log & #错误输出到test.log
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)
查看后台运行的任务:
jobs -l
以上命令只适用于没有关掉终端的查看,如果重新打开终端只能用ps(process):
ps fx
ps -ef | grep [用户名或命令]
ps -aux
a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分。可以获取到进程ID(PID)
除了ps以外,还可以通过top查看后台运行的情况:
1.png
后台进程的切换与控制
Ctrl + C:前台的命令任务终止
Ctrl + Z:将一个前台执行的命令放到后台,并且处于暂停的状态
fg:fg %jobID将某一任务调回前台运行
bg:bg %jobID将一个后台暂停命令变成后台继续执行
%jobID就是PID
如果需要将后台命令停止用kill -9 %jobID。
批量终止或暂停后台命令:
ps aux| grep hostname | grep -v root | cut -c 9-15 | xargs kill -STOP
hostname: 用户名
grep -v root:反选去除root命令
cut -c 9-15: 9-15个字符正好是PID
xargs将前面的输出当做输入传给“kill -STOP”(暂停进程)或者“kill -9”(强行杀掉)或者“kill -15”(正常退出)
kill -CONT:恢复stop的进程