Когда я пытаюсь установить пакет, например nsnake , с помощью команды sudo apt-get install nsnake &
, процесс немедленно останавливается. Я могу вывести его на передний план и ввести свой пароль sudo, приостановить его (с помощью Ctrl kbd> - Z kbd>) и снова отправить его обратно в фоновый режим. Но тогда оболочка немедленно приостановит процесс, например,
katriel@caseylaptop:~$ bg
[2]+ sudo apt-get install nsnake &
[2]+ Stopped sudo apt-get install nsnake
Можно ли устанавливать пакеты в фоновом режиме? Я могу захотеть сделать это при установке больших пакетов на компьютер, на котором я работаю по SSH.
Да, конечно.
Выполните команду apt-get
с причудливыми вещами вокруг нее
sudo bash -c 'apt-get -y install guake >/dev/null 2>&1 & disown'
Объяснение части:
Часть sudo bash -c
появляется новый процесс bash
и запускает apt-get -y install guake >/dev/null 2>&1 & disown
внутри этой новой оболочки.
Затем эти команды запускаются внутри новой подоболочки:
apt-get -y install guake
: основная команда apt-get, которую вы хотите запустить.
>/dev/null 2>&1
направляет stdout и stderr в / dev / null. li> ul> & disown
отказывается от предыдущего задания и выходит из подоболочки. Добавьте амперсанд &
для запуска любой программы и вернитесь к приглашению во время выполнения программы, например
sudo apt-get -y install nsnake &
. Вы можете периодически получать определенные события и уведомления. в оболочке, однако. Чтобы скрыть эти события, направьте их в STDOUT
sudo apt-get -y install nsnake >/dev/null &
Это обходной путь, но сначала запустите что-нибудь с помощью sudo, например, sudo ls
. Ваше разрешение sudo запомнится на некоторое время. Затем вы можете просто запустить sudo apt-get -y install nsnake &
, и вам не будет предложено ввести пароль во второй раз (если не прошло какое-то время и не истек срок авторизации).