Як я можу запустити "apt-get install" у фоновому режимі?


17

Коли я намагаюся встановити пакет, наприклад nsnake , за допомогою команди sudo apt-get install nsnake &, процес негайно припиняється. Я можу винести його на перший план і ввести свій пароль sudo, призупинити його (з Ctrl- Z) і знову відіслати його на другий план . Але тоді оболонка негайно призупинить процес, наприклад,

katriel@caseylaptop:~$ bg     
[2]+ sudo apt-get install nsnake &   
[2]+  Stopped                 sudo apt-get install nsnake

Чи можливо встановити пакети у фоновому режимі? Я, можливо, захочу це зробити під час встановлення великих пакетів на комп'ютер, в який я входжу SSH.

Відповіді:


30

Так, авжеж.

Виконайте свою 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.
    • & disown відмовляється від попереднього завдання та виходить із передплати.

Є "так |" потрібен при використанні перемикача -y?
користувач31389

@ user31389: Не суворо, але це може допомогти, якщо пакет має додаткові підказки під час встановлення.
кірі

Було б дуже приємно зрозуміти, чому це працює (і навіщо це потрібно).
катріел

@katriel: Це не так просто пояснити. Я намагався пояснити свою відповідь.
кірі

1
@katriel: Це тому, що Ctrl + Z призупиняє команду, тобто вона призупинена (тимчасово зупинена).
кірі

17

Мені завжди подобається використовувати екран для запуску програм у фоновому режимі.


2
+1 для екрана Це простий у використанні і чудово підходить для фонових програм, до яких ви хочете час від часу отримувати доступ, наприклад, клієнт irc або як заміна декількох ssh-з'єднань, коли вам потрібно швидко отримувати доступ до набору шляхів або файлів
Pichan

4
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
blade19899

1
Я віддаю перевагу tmux для екрана.
Майкл

9

Додайте ampersand &для запуску будь-якої програми та поверніться до підказки під час роботи програми, наприклад

sudo apt-get -y install nsnake &

Однак ви можете отримувати певні події та сповіщення, що періодично з’являються в оболонці. Щоб приховати ці події, передайте їх STDOUT

sudo apt-get -y install nsnake >/dev/null &

1
Подія була проблемою. Здається, рішення полягає в тому, щоб передати їх STDOUT.
katriel

-1

Це вирішення, але спочатку запустіть що-небудь із судо, наприклад sudo ls. Ваш дозвіл на судо запам'ятається на деякий час. Тоді ви можете просто запустити, sudo apt-get -y install nsnake &і вам не буде запропоновано ввести пароль вдруге (якщо не минуло певного часу і термін авторизації не закінчився).


Вам все одно потрібно ввести y підказку, що ваш команд не дозволить вам зробити.
кірі

@ minerz029 О, так. Виправлено.
користувач31389

Я впевнений, що це не заважає ні дозвіл судо, ні запит "Так / н", оскільки мені не доведеться робити цього, якщо я виведу цю роботу на перший план.
katriel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.