前台程序放到后台并且nohup

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前台程序放到后台并且nohup相关的知识,希望对你有一定的参考价值。

前天测试,有个批处理程序放到前台运行了,如何放到后台运行,以便关机走人?

看了这篇How do I put an already-running process under nohup?

第一种方法是Ctrl Z + bg+disown,都是任务管理的命令,例如:

[vagrant@oracle-19c-vagrant ~]$ sleep 1000
^Z
[1]+  Stopped                 sleep 1000
$ bg %%
[1]+ sleep 1000 &
$ jobs
[1]+  Running                 sleep 1000 &
$ disown %1

第二种方法是通过信号SIGSTOP和SIGCONT。上一个方法中的Ctrl+Z实际就是SIGSTOP信号。
假设在终端0上运行了sleep命令。然后在终端2上执行以下:

$ tty
/dev/pts/2
$ ps -ef|grep sleep
vagrant   7959  2959  0 07:57 pts/0    00:00:00 sleep 100000
vagrant   7991  7968  0 07:58 pts/2    00:00:00 grep --color=auto sleep
$ kill -SIGSTOP 7959
$ kill -SIGCONT 7959

终端0上的状态:

$ tty
/dev/pts/0

$ sleep 100000

[1]+  Stopped                 sleep 100000

$ jobs
[1]+  Running                 sleep 100000 &

如果是Solaris和AIX平台,还可以用以下方法。不过x86是趋势,这些应该用的少了:

nohup -p pid

以上是关于前台程序放到后台并且nohup的主要内容,如果未能解决你的问题,请参考以下文章

centos 离开进程不 退出程序,检测进程fg、bg、jobs、&、nohup、ctrl+z、ctrl+c

如何把linux后台任务调到前台

nohup和&的区别

linux 远程主机后台运行任务 挂起脚本

linux后台运行和关闭查看后台任务

linux后台运行和关闭查看后台任务