Как запустить программу как службу (без вывода сообщений)?

У меня есть сервер на базе Python, который я запускаю с терминала. Этот конкретный экземпляр терминала затем передает управление программе, и программа использует его как своего рода окно регистрации, пока оно не закроется. Это нормально, или я должен каким-то образом попытаться запустить программу каким-то другим способом, который будет просто отображаться как активный процесс? Если я закрываю терминал, с которого я запустил программу, программа умирает вместе с ним.

Спасибо

23
задан 22 September 2012 в 16:08

5 ответов

$ servicename &

Использование & приводит к тому, что программа запускается в фоновом режиме, а не блокирует оболочку, пока программа не завершится.

0
ответ дан 22 September 2012 в 16:08

Преврати его в демона (службу)
daemon --name="yourservicename" --output=log.txt sh yourscript.sh

0
ответ дан 22 September 2012 в 16:08

Даже старый bash использует & amp; для отправки процессов в фоновый режим, но есть и несколько других способов ... но есть два основных:

1.)$~ your_command > outputfile_for_stdout &
        # runs your command in background, giving you only PID so you can exit that process by `kill -9 PID_of_process`
        # & goes at the end of row      


2.)$~ your_command > outputfile_for_stdout 
        # this will run your program normally
        # press  Ctrl + Z then program will pause
   $~ bg
        # now your program is running in background
   $~ fg
        # now your program came back to foreground
3.)you can run terminal window under screen command so it will live until you either kill it or you reboot your machine
   $~ screen
   $~ run_all_your_commands
       # Ctrl + A + D will then detach this screen
   $~ screen -r will reattach it

Некоторые другие полезные команды:

   $~ jobs
        # will show you all processes running right now, but without PID
   $~ ps
        # will show you all processes for actual terminal window
0
ответ дан 22 September 2012 в 16:08

Из терминала вы также можете запустить screen или выполнить команду с помощью &. Простой способ запуска непрерывных процессов.

0
ответ дан 22 September 2012 в 16:08

Вы также можете использовать:

start-stop-daemon -SbCv -x your_command

здесь есть сценарий init.d для запуска и остановки программы в фоновом режиме.

0
ответ дан 22 September 2012 в 16:08

Другие вопросы по тегам:

Похожие вопросы: