Как запустить команду, спрашивая пароль в фоновом режиме?

Я хочу выполнить команду sudo apt-get update &. Однако после нажатия Enter, когда я нажимаю jobs, он показывает состояние этих команд как остановленных. Я предполагаю, что, выдвигая процесс в фоновом режиме, я не дал ему возможность спросить пароль. Есть ли способ запустить процесс в фоновом режиме, который требует пароль?

5
задан 2 December 2012 в 20:35

5 ответов

В первую очередь, "Это не лучшая практика".
Но можно использовать команду sudo -S

Sudo-S:
-S (stdin) опция заставляет sudo читать пароль из стандартного входа вместо оконечного устройства.

Так, Перейдите к терминалу и типу:

echo 'yourpassword' | sudo -S apt-get update 1>> /home/user/myaptupd.log 2>&1 &

это будет работать, склонная команда - получают обновление без подсказки для пароля и backgroud,
и перенаправит (добавляют) stdout и stderr к файлу журнала в Вашем домашнем именованном myaptupd.log, на всякий случай можно проверить, в порядке ли все с Кв. - получают команду обновления.

Сделайте к этому, большая команда, можно поместить эту команду как Псевдоним в .bashrc файле. Например: В терминальном типе:

gedit /home/user/.bashrc

Добавьте эту строку в конец файла

alias myaptupd='echo 'yourpassword' | sudo -S apt-get update 1>> /home/user/myaptupd.log 2>&1 &'

Перезагрузите свой .bashrc
В терминальном движении к Вашему корневому каталогу просто введите:

cd

Затем тип:

source .bashrc

или

. .bashrc

Теперь в терминале просто вводят Псевдоним как команду:

myaptupd

Можно свериться с командой jobs состояние.

С другой стороны, можно создать сценарий удара и названный myaptupd.sh
Например:

#! /bin/bash
echo 'yourpassword' | sudo -S apt-get update 1>> /home/user/myaptupd.log 2>&1 &

Для безопасности можно установить перманент на:

chmod 700 /path/to/the/myaptupd.sh

Затем можно назвать сценарий с:

 bash /path/to/the/myaptupd.sh

Или сделайте Псевдоним в своем .bashrc

alias myaptupd='bash /path/to/the/myaptupd.sh'

Перезагрузите свой .bashrc (как, объясняет он прежде), и можно ввести имя псевдонима для запущения скрипта:

myaptupd

Надежда это будет полезный!

С уважением.

2
ответ дан 2 December 2012 в 20:35

Попробуйте:

xterm -e "sudo -b nohup php -S localhost:80 -t /media/malcolm/Workspace/sites &>/dev/null"

при закрытии xterm, веб-сервер php еще жив,

Не помещайте «nohup» перед «sudo», иначе веб-сервер php будет убит после закрытия xterm.

0
ответ дан 2 December 2012 в 20:35

Я добавил следующее к своему .bash_profile файлу.

sudobg() {
  sudo echo "Password entered"
  sudo $@ &
}

Затем я могу просто звонить:

prompt$ sudobg echo "Hello from the background."

И я добираюсь:

Password:
Password entered
[1] 6773
prompt$ Hello from the background.

Отказ от ответственности: Я использую удар, но не Ubuntu. Могут быть лучшие местоположения для этого функционального определения.

0
ответ дан 2 December 2012 в 20:35

Лучший и безопасный способ:

su -c "sudo apt-get update &"

Вы также можете передать вывод в файл журнала:

su -c "sudo apt-get update > update.log &"
0
ответ дан 2 December 2012 в 20:35

Попробуйте сначала ввести sudo -i, а затем apt-get update & или просто выполнить команду:

sudo -i && apt-get update &

Еще можно попробовать команду:

gksudo && sudo apt-get update &

Но я не уверен, что это сработает.

Или вы можете попробовать добавить своего пользователя в список пользователей, которым не требуется вводить пароль при использовании sudo.

Для этого добавьте в терминал тип sudo visudo. Затем добавьте строку

%super_sudoers ALL=(ALL) NOPASSWD: ALL

Или как хотите, чтобы вызывать группу (вы можете изменить «super_sudoers»), а затем добавьте своего пользователя в эту группу, набрав

usermod -a -G super_sudoers yourusername (очевидно, заменяя ваше имя пользователя вашим именем пользователя)

и перезагрузите компьютер (или, возможно, выйдите из системы / войдите в систему, но не уверены), чтобы найти, что вы можете вводить команды suo без необходимости вводить пароль. Это, конечно, означает, что другие люди могут убедиться, что вы всегда оставляете свой компьютер заблокированным и не включаете автоматический вход в систему.

0
ответ дан 2 December 2012 в 20:35

Другие вопросы по тегам:

Похожие вопросы: