Итак, я только что обнаружил команду setsid
, которая значительно упрощает запуск программ из Терминала. Я хотел бы знать, есть ли способ настроить программы для автоматического запуска в новом сеансе, потому что, честно говоря, я, вероятно, собираюсь подготовить setsid
, прежде чем все, что я сейчас запускаю. Это плохая практика по какой-то причине?
Кроме создания псевдонимов для Ваших программ, не действительно возможно иметь setsid
автоматически снабженный префиксом, прежде чем каждая команда вводится в терминале. Однако я нахожу, что очень полезно создать .inputrc
в Вашей домашней папке и месте в нем (наблюдение заключения в кавычки):
Control-o: "setsid "
Можно теперь поразить Ctrl+o в терминале и затем ввести команду; это экономит много времени, если необходимо продолжать повторять его. Нет никакой ошибки в размещении кавычек: это позволяет Вам сразу вводить команду после того, как ярлык будет использоваться. Эта функциональность и намного больше обеспечивается ударом readline
библиотека: посмотрите man bash
или страницы справочника Ubuntu онлайн.
Со ссылкой на Ваш второй вопрос это не плохая практика для использования setsid
много и просто зависит от Ваших конкретных потребностей. На самом деле это чрезвычайно полезно, потому что, как отмечено по kernel.org,
setsid создает новую сессию, если обработка вызовов не является лидером группы процесса. Обработка вызовов является лидером новой сессии, лидером группы процесса новой группы процесса, и не имеет никакого управления tty... Обработка вызовов будет единственным процессом в этой новой группе процесса и на этой новой сессии.
Следовательно программа, запущенная с setsid
имеет полную независимость от терминала, с которого она была запущена, поскольку новый процесс был разветвлен.
Существуют также другие подобные, но различные способы отсоединить программу от терминала такой как nohup
или disown
. (Это должно быть сказано это setsid
программа от util-linux
пакет, в то время как disown
встроенный удар.) Этот вопрос может быть очень интересным, как он касается таких связанных тем: