Как запустить программу как услугу (беззвучно)?

16

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

Спасибо

    
задан U2ros 22.09.2012 в 12:08
источник

5 ответов

22

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

    
ответ дан user91632 22.09.2012 в 12:29
источник
6

Даже старый 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
    
ответ дан lukassos 23.09.2012 в 17:42
4
$ servicename &

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

    
ответ дан dixoncx 22.09.2012 в 15:25
1

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

start-stop-daemon -SbCv -x your_command

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

    
ответ дан druss 12.06.2015 в 21:57
0

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

    
ответ дан Nicholas 09.02.2018 в 01:55