nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略全部挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。tomcat
nohup 是 no hang up 的缩写,就是不挂断的意思。命令行
nohup命令:若是你正在运行一个进程,并且你以为在退出账户时该进程还不会结束,那么可使用nohup命令。该命令能够在你退出账户/关闭终端以后继续运行相应的进程。code
在缺省状况下该做业的全部输出都被重定向到一个名为nohup.out的文件中。进程
nohup : 加在一个命令的最前面,表示不挂断的运行命令thread
& : 加载一个命令的最后面,表示这个命令放在后台执行后台
#使用nohup命令执行这个脚本 [look@tomcat ~]$ nohup /bin/sh /home/look/thread.sh > /dev/null 2>&1 & [1] 3831
有两个命令能够来查看,ps
和 jobs
。
区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。
而ps命令适用于查看瞬时进程的动态,能够看到别的终端的任务。终端
[look@tomcat ~]$ jobs [1] 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [3]+ 完成 nohup /bin/sh /home/look/thread.sh > /dev/null 2>&1
前后起了三个后台运行的进程,使用jobs后都显示出来了。“+”表明最近的一个任务(当前任务),“-”表明以前的任务。grep
只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。若是将他们写到 .sh 脚本中,而后执行脚本,是显示不出来的程序
[look@tomcat ~]$ ps -aux|grep tail look 3551 0.0 0.0 108092 616 pts/1 S+ 14:06 0:00 tail -100f Threads_logs/2020-08-19-threads.log look 3870 0.0 0.0 108092 616 pts/0 S 14:43 0:00 tail -100f Threads_logs/2020-08-19-threads.log look 3871 0.0 0.0 108092 612 pts/0 S 14:44 0:00 tail -100f Threads_logs/2020-08-19-threads.log look 3898 0.0 0.0 112824 980 pts/0 R+ 15:01 0:00 grep --color=auto tail
这个是查看进程经常使用的命令脚本
a: 显示全部程序
u: 以用户为主的格式来显示
x: 显示全部程序,不以终端机来区分
1)kill 命令
经过jobs命令查看jobnum,而后执行 kill %jobnum
[look@tomcat ~]$ jobs [1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [look@tomcat ~]$ kill %2 [look@tomcat ~]$ jobs [1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]+ 已终止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1
经过ps命令查看进程号PID,而后执行 kill %PID
[look@tomcat ~]$ jobs [1]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [look@tomcat ~]$ kill -9 3870 [look@tomcat ~]$ jobs [1]+ 已杀死 nohup tail -100f Threads_logs/2020-08-19-threads.log
2)若是是前台进程的话,直接执行 Ctrl+c 就能够终止了
fg命令:将后台中的命令调至前台继续运行
若是后台中有多个命令,能够先用jobs查看jobnun,而后用 fg %jobnum 将选中的命令调出。
[look@tomcat ~]$ jobs [1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [look@tomcat ~]$ fg 2 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1
Ctrl + z 命令:将一个正在前台执行的命令放到后台,而且处于暂停状态
[look@tomcat ~]$ fg 2 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 ^Z [2]+ 已中止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 [look@tomcat ~]$ jobs [1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]+ 已中止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1
bg命令:将一个在后台暂停的命令,变成在后台继续执行
若是后台中有多个命令,能够先用jobs查看jobnum,而后用 bg %jobnum 将选中的命令调出继续执行。
[look@tomcat ~]$ bg 2 [2]+ nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [look@tomcat ~]$ jobs [1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log & [2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 &