通过 PID 号恢复进程

通过 PID 号恢复进程

我希望守护进程在启动时启动,因此我添加了一行以/etc/rc.local“&”结尾的行,这样做是为了让它在后台运行。

守护进程已加载并运行良好,但当守护进程运行时,您可以按下键来执行其他重要的事情。

当我最终登录时,我想恢复进程或向其发送一个终端(tty2),以便我可以做几件事。

我是 Linux 新手,不清楚该如何操作。

我做了一个实验ps -aux |grep uox来找出它是哪个 PID。但不确定如何恢复。

答案1

您可以使用 kill 命令从任何 shell 通过 PID 号恢复进程。

kill -CONT <pid> 

不要忘记 -CONT 部分,否则您将终止您的进程。

PS David Purdue 的说法是正确的,fgbg只对同一进程树上的进程起作用。他的解决方案似乎更适合您的需求。但是,由于标题是“通过 PID 号恢复进程”,我认为其他需要此解决方案的人可能会想要找到它。

答案2

jobsjobs只会列出与运行命令的 shell 关联的作业,同样,fg和 也bg只适用于与当前 shell 位于同一进程树上的进程。在这个问题的上下文中,您要附加的作业是用 启动的/etc/rc.local,因此该 shell 不是您当前所在的 shell。

您可以/etc/rc.local使用screen命令(https://help.ubuntu.com/community/Screen) - 这将启动它并附加到伪终端,然后您以后可以screen再次使用它来附加到该终端并在正在运行的程序中键入字符。

screen使用安装apt-get,然后键入man screen以查看所有选项。我不确定您应该输入什么rc.local,现在也没有时间进行实验,但可能会在以后更新此答案。

答案3

借自维杰
使用该jobs命令查找您启动的后台进程列表。例如:有一个脚本在 5 次迭代中简单地休眠 10 秒。我在后台运行了它 4 次。

>jobs
[1]  + Running                       ./temp.sh
[2]  - Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]    Running                       ./temp.sh

fg是将其带回前台的命令,如下所示。

>fg 1
[CTRL -c]

如上所示,我已结束该进程,它不再存在。现在如果我再次运行jobs

>jobs
[2]  + Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]  - Running                       ./temp.sh
>

您还可以检查这里更多

相关内容