В зависимости от языка сценариев Вы используете для выполнения задания, которое Вы могли использовать
setpgrp()
Perl: setpgrp PID, PGRP
отсоединять рабочий процесс от терминала управления, поэтому после того как это запускает терминал управления, может выйти, не вредя рабочему процессу.
Теперь от то, что Вы описываете Вас, будет иметь терминал управления и оболочку рабочим Терминалом Gnome и запуском Вашего задания оттуда так nohup
должен работать просто великолепно для Вас.
Установите переменную окружения DEBIAN_FRONTEND=неинтерактивный
.
Например:
export DEBIAN_FRONTEND=noninteractive
apt-get install -y libpq-dev
Это заставит apt-get
выбрать опции по умолчанию.
Этого можно добиться с помощью debconf-set-selections
. Из man-страницы:
debconf-set-selections can be used to pre-seed the debconf database
with answers, or to change answers in the database. Each question will
be marked as seen to prevent debconf from asking the question
interactively.
Для того, чтобы определить необходимый ввод в debconf-set-selections
, если он неизвестен, вы можете ответить на запрос вручную, а затем просмотреть базу данных debconf, чтобы найти правильное значение. Для этого установите debconf-utils
:
sudo apt-get -y install debconf-utils
, который предоставляет команду debconf-get-selections
. Затем:
sudo debconf-get-selections | grep libssl1.0.0:amd64
для проверки значений в БД. В моей системе (Ubuntu, но Debian должен быть похож на нее) меня не спрашивают, когда я apt-get устанавливаю libpq-dev, и у меня есть эта запись:
libssl1.0.0:amd64 libssl1.0.0/restart-services string
так что вы можете использовать:
echo 'libssl1.0.0:amd64 libssl1.0.0/restart-services string' | sudo debconf-set-selections
для установки списка служб для перезапуска при обновлении libssl до 'none'.
В Debian больше информации о допустимых значениях для этой строки должно быть в файле questions.dat
под /var/lib/cdebconf
. См. https://www.debian.org/releases/stable/i386/apbs03.html.en для получения более подробной информации.
Я думаю, что существующие ответы могут быть немного старыми. Следующее работало для меня недавно.
Для просмотра настроек пакета
sudo debconf-show <package-name>
Э.Г.:
$ sudo debconf-show libssl1.1
libssl1.1/restart-services:
libssl1.1/restart-failed:
* libraries/restart-without-asking: false
Для изменения настройки
echo '<package-and-setting-string>' | sudo debconf-set-selections
Э. Г.
echo 'libssl1.1 libraries/restart-without-asking boolean true' | sudo debconf-set-selections
Дополнительный совет: чтобы установить этот параметр для всех пакетов, используйте «*» вместо имени пакета.
Э. Г.
echo '* libraries/restart-without-asking boolean true' | sudo debconf-set-selections