У меня есть сервер на базе Python, который я начинаю с терминала. Этот конкретный экземпляр терминала затем передает управление программе, и программа использует его как своего рода окно регистрации, пока оно не закроется. Это нормально, или я должен каким-то образом попытаться запустить программу каким-то другим способом, который будет просто отображаться как активный процесс? Если я закрываю терминал, с которого я запустил программу, программа умирает вместе с ним.
Спасибо
command-line
python
services
U2ros
источник
источник
Ответы:
Даже старый bash использует & для отправки процессов в фоновый режим, но есть и другие способы ... но есть два основных:
Некоторые другие полезные команды:
источник
Преврати его в демона (сервис)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh
источник
Использование
&
заставляет программу работать в фоновом режиме, вместо того, чтобы блокировать оболочку, пока программа не завершится.источник
dixon@dixon-vaio:~$ nautilus & [1] 11835
, Он возвращает идентификатор процесса, и вы получите новый запрос оболочки. Также проверьте это: http://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and .Вы также можете использовать:
Вот скрипт init.d для запуска и остановки программы в фоновом режиме.
источник
С терминала вы также можете запустить
screen
или выполнить команду&
. Простой способ запуска непрерывных процессов.источник
&
по моему мнению, просто использовать в качестве фона процесс в этом случае мало. OP заявляет, что его сервер входит в stdout, поэтому&
его терминал будет перегружен выводом. Кроме того, так как OP упоминает о закрытии терминала , OP не сможет снова поставить процесс на первый план, и все выходные данные журнала будут потеряны. Лучше, по крайней мере, перенаправить его в файл журнала или придерживатьсяscreen
настройки - но тогда, пожалуйста, объясните основыscreen
OP (detach / attach / etc)