Bash 诺胡普';正在调用sudo命令-不';好像不行
我读过很多书和其他文章,但我不明白这一点。这是我总结的:Bash 诺胡普';正在调用sudo命令-不';好像不行,bash,background-process,sudo,nohup,Bash,Background Process,Sudo,Nohup,我读过很多书和其他文章,但我不明白这一点。这是我总结的: sudo-nohup或nohup-sudo(我已经尝试了这两种方法)不带背景的命令&(因此,您可以在分离密码之前输入密码) 输入密码 ^Z然后bg disownpid(由于某种原因不起作用) 注销 以下是输出: [user@localhost ~]$ nohup sudo dd if=/dev/zero of=/dev/sda bs=1M nohup: ignoring input and appending output to ‘noh
sudo-nohup
或nohup-sudo
(我已经尝试了这两种方法)不带背景的命令&
(因此,您可以在分离密码之前输入密码)^Z
然后bg
disown
pid(由于某种原因不起作用)[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 ~]$
因此,这一过程已经结束。我尝试过其他几种组合,但没有成功。有什么办法可以让它工作吗?如果您没有正确使用disown,正确的参数应该是jobspec(“%”+job number) 在您的示例中,您应该使用
disown%1
,而不是disown 2458
要列出当前的shell作业列表,可以使用bash内置的
作业使用-b
选项sudo
来指示它在后台运行给定的命令。作业控制不起作用,因为nohup
进程不是当前shell的子进程,而是sudo
进程的子进程
sudo -b nohup dd if=/dev/zero of=/dev/sda bs=1M
不,它不起作用。我可以disown%1
,它会从jobs
中消失,但注销后该过程仍会消失。无论我是否使用sudo nohup…
或只是sudo…
,都会发生这种情况。