nohup'ing sudo 命令 - 似乎不起作用



我已经阅读了此书和其他几篇文章,但我无法弄清楚。这就是我组合的:

  1. sudo nohupnohup sudo(我已经尝试过)没有背景&的命令(因此您可以在分离之前输入密码)
  2. 输入密码
  3. ^Z然后bg
  4. disown PID(由于某种原因不起作用)
  5. 注销

这是输出:

[user@localhost ~]$ nohup sudo dd if=/dev/zero of=/dev/sda bs=1M
nohup: ignoring input and appending output to ‘nohup.out’
[sudo] password for user: 
^Z
[1]+  Stopped                 nohup sudo dd if=/dev/zero of=/dev/sda bs=1M
[user@localhost ~]$ bg
[1]+ nohup sudo dd if=/dev/zero of=/dev/sda bs=1M &
[user@localhost ~]$ sudo ps | grep dd
 2458 pts/32   00:00:00 dd
[user@localhost ~]$ disown 2458
-bash: disown: 2458: no such job
[user@localhost ~]$ logout
Connection to [server] closed.
$ remote
Last login: Mon Feb  3 11:32:59 2014 from [...]
[user@localhost ~]$ sudo ps | grep dd
[sudo] password for user: 
[user@localhost ~]$

使过程消失了。我尝试了其他一些组合,但没有成功。有什么想法可以使这项工作?

使用-b选项sudo将其指示在后台运行给定命令。工作控制不起作用,因为nohup过程不是当前外壳的孩子,而是sudo进程的孩子。

sudo -b nohup dd if=/dev/zero of=/dev/sda bs=1M

您没有正确使用拒绝,正确的参数应为jobspec('%' 作业号)。

在您的示例中,您应该具有disown %1而不是disown 2458

用于列出当前的外壳作业列表,您可以使用bash内置jobs

相关内容

  • 没有找到相关文章

最新更新