标签:gre bash info alt 终端机 pre kill jobs you
用途:不挂断地运行命令。如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
语法:nohup Command [ Arg … ] [ & ]
退出状态:该命令返回状态如下
用途:在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出
nohup与&合在一起会让命令永久的在后台执行
语法:nohup COMMAND &
eg: nohup command > myout.file 2>&1 &
其中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ,在该例中 2>&1是将标准错误重定向到标准输出,标准输出再被重定向输入到myout.file文件中。
1 #!/bin/bash 2 3 index=0 4 while [ 1 ] 5 do 6 echo mylog $index 7 index=$[ index+1 ] 8 sleep 1s 9 done
执行命令 | 状态 |
./mylog.sh | 结果会输出到终端 使用Ctrl + C发送SIGINT信号或关闭session发送SIGHUP信号,程序关闭 |
./mylog.sh & | 结果会输出到终端 使用Ctrl + C发送SIGINT信号,程序免疫 关闭session发送SIGHUP信号,程序关闭 |
nohup ./mylog.sh | 结果默认会输出到nohup.out 使用Ctrl + C发送SIGINT信号,程序关闭 关闭session发送SIGHUP信号,程序免疫 |
nohup ./mylog.sh & | 同时免疫SIGINT和SIGHUP信号 |
1.使用./mylog.sh
2.使用./mylog.sh &
使用ctrl+c发送SIGINT信号,程序免疫
关闭终端窗口,查看程序,程序关闭
3.使用nohup ./mylog.sh
使用ctrl+c,程序关闭,输出信息被保存到当前目录nohup.out文件中
关闭终端窗口,查看程序,程序免疫
4.使用nohup ./mylog.sh &
使用ctrl+c,程序免疫
关闭终端窗口,程序免疫
只有通过kill杀掉进程
# jobs //查看任务,返回任务编号n和进程号
# bg %n //将编号为n的任务转后台运行
# fg %n //将编号为n的任务转前台运行
# ctrl+z //挂起当前任务
# ctrl+c //结束当前任务
ps aux |fgrep ‘mylog.sh‘|grep -v grep
a:显示所有程序
u:以用户为主的格式来显示
x:显示所有程序,不以终端机来区分
用grep -v参数可以将grep命令排除掉
用awk提取一下进程ID,即 ps -aux|grep mylog.sh| grep -v grep | awk ‘{print $2}‘
标签:gre bash info alt 终端机 pre kill jobs you
原文地址:https://www.cnblogs.com/mianbaoshu/p/12073028.html