2014-02-03 4 views
2

Я читал this и несколько других статей, но я не могу понять это. Это то, что я соединил:nohup'ing команда sudo - кажется, не работает

  1. sudo nohup или nohup sudo (я пробовал оба) команду без фона & (так что вы можете ввести свой пароль перед отсоединением его)
  2. Введите пароль
  3. ^Z затем bg
  4. disown ИДП (не работает по какой-то причине)
  5. Выйти

Вот результат:

[[email protected] ~]$ 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 
[[email protected] ~]$ bg 
[1]+ nohup sudo dd if=/dev/zero of=/dev/sda bs=1M & 
[[email protected] ~]$ sudo ps | grep dd 
2458 pts/32 00:00:00 dd 
[[email protected] ~]$ disown 2458 
-bash: disown: 2458: no such job 
[[email protected] ~]$ logout 
Connection to [server] closed. 
$ remote 
Last login: Mon Feb 3 11:32:59 2014 from [...] 
[[email protected] ~]$ sudo ps | grep dd 
[sudo] password for user: 
[[email protected] ~]$ 

Так процесс пошел. Я пробовал несколько других комбинаций без успеха. Любые идеи, чтобы сделать эту работу?

ответ

1

Используйте опцию -b для sudo, чтобы поручить ему выполнить данную команду в фоновом режиме. Управление работой не работает, потому что процесс nohup не является дочерним элементом текущей оболочки, а является процессом sudo.

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

Это работает. Благодарю. :) –

0

Вы используете неверно, правильно аргумент должен быть спецификацией ('%' + номер задания).

В вашем примере у вас должно быть disown %1 вместо disown 2458.

Для перечисления вашего текущего списка заданий оболочки, вы можете использовать Баш предопределённый jobs

+0

Нет, не работает. Я могу «отказать% 1», и он исчезает из «заданий», но процесс все еще исчезает после выхода из системы. Это происходит независимо от того, использую ли я 'sudo nohup ...' или просто 'sudo ...'. –

Смежные вопросы