前台程序放到后台并且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的主要内容,如果未能解决你的问题,请参考以下文章