linux下后台进程的运行方法

注释:在Linux中,如果我们希望进程在后台运行,一般来说,我们可以在命令后面添加它,这实际上是将命令放入作业队列中。

美元/ test.sh。

{ 1 } 17208

就业机会

{ 1 } + 17208 / test.sh运行。

对于在前台执行的命令,它也可以放回后台。首先,按CT





在Linux中,如果我们希望进程在后台运行,一般来说,我们可以在命令后面添加它,这实际上是将命令放入作业队列中。

美元/ test.sh。

{ 1 } 17208

就业机会

{ 1 } + 17208 / test.sh运行。

对于已经在前台执行的命令,它也可以放在后台执行中。首先,用于暂停正在运行的进程。然后,BG命令用于将其余的工作放在后台。

美元/ test.sh。

{ 1 } +停止。 / test.sh

美元1

{ 1 } +。 / test.sh

就业机会

{ 1 } + 22794 / test.sh运行。

但是,如果进程在后台执行,则父进程是当前shell的进程。一旦父进程,它将所有的子进程发送挂断信号,和子过程也将退出后接收的问题。如果我们想继续这个过程当我们退出外壳,我们需要使用nohup忽略hangup信号,或者setsid将父进程init进程(进程数为1)。

回声$

二十一万七百三十四

使用nohup美元/ test.sh。

{ 1 } 29016

$ ps -ef grep测试|

51529710217340分/ 12 00:00:00 /斌/建议/ test.sh在11

51529713217340分/ 12 00:00:00 grep试验在11

美元/ test.sh setsid。

{ 1 } 409

$ ps -ef grep测试|

51541010 00:00:00 / bin SH / test.sh 11时49分

515413217340分/ 12 00:00:00 grep试验11时49分

以上实验表明使用nohup / setsid加进程在后台运行的应用,而目前壳牌退出的影响。那么你是做什么的一个过程,一直在后台运行您可以使用与命令:

美元/ test.sh。

{ 1 } 2539

就业机会

{ 1 } + 2539 / test.sh运行。

不认- h为1美元

$ ps -ef grep测试|

51541010 00:00:00 / bin SH / test.sh 11时49分

5152542217340分/ 12 00:00:00 grep测试11:52

还有另一种方式,即使过程实际上是在一个壳层,执行,这是因为setsid相同。方法很简单,和命令是括在括号中():

$()

$ ps -ef grep测试|

51541010 00:00:00 / bin SH / test.sh 11时49分

51512483217340分/ 12 00:00:00 grep试验在11:59

注:本文中的测试环境是红帽企业Linux 4版本(Nahant更新5),壳 /斌/ bash,不同的操作系统和 /斌/ bash会有所不同。例如,AIX的ksh,没有否认,但你可以用使用nohup P PID获得同样的效果,不认。

还有一种更有效的方法是利用屏幕,首先创建一个断开模式的虚拟终端,然后使用-r选项连接虚拟终端,它的任何命令,可以实现使用nohup的影响,当有多个命令需要连续执行的背景更方便:

屏幕DMS screen_test美元

屏幕列表

屏幕上有:

27963.screen_test(分离)

1插座在/tmp / / s-jiangfeng uscreens。

屏幕- R screen_test美元