linux——nohup后台运行,ps查看等命令

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的进程

推荐阅读更多精彩内容