Как запускать обычные программы в качестве демонов / сервисов

Возможный дубликат:
Как закрыть терминал, не убив запущенную команду?

Я использую Debian для своего сервера.

Я просто установил MediaCore, который работает хорошо.

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

Я знаю, как начать, но тогда оболочка бесполезна, пока программа работает.

Итак, как я могу запустить его тихо, когда я запускаю службы / демоны?

2 Solutions collect form web for “Как запускать обычные программы в качестве демонов / сервисов”

У вас есть пара вариантов.

Во-первых, вы можете запустить его на screen а затем Ctrl-A выйти из экрана после его запуска. Вы можете позже подключиться к экрану с помощью screen -RR {screen number} ; вы можете определить номер экрана с помощью screen -ls . (Если у вас есть только один активный экран, появится простой screen -RR ).

Во-вторых, вы можете запустить его из оболочки и заполнить ее, добавив команду & after. Тем не менее, вы также хотите перенаправить stdout и stderr в соответствующие файлы, чтобы оболочка не вставляла вывод команды с вашей оболочкой. Я думаю, что-то вроде

$ command > command.stdout 2> command.stderr &

это то, что вы ищете.

Я никогда не использовал MediaCore, поэтому я не знаю, что он выводит. Если вы просто хотите записать весь вывод в файл, будь то stdout или stderr, это будет работать

$ command &> command.output &

Однако, в конечном счете, поскольку вы используете Debian, правильная вещь – добавить для него сценарий инициализации (как упоминалось в @ user606723). В /etc/init.d есть skeleton скрипт, который будет хорошей отправной точкой.

Вы можете запустить свою программу с помощью «экрана» или использовать «hohup» для отсоединения от терминала.

 nohup my_app 2>/dev/null 2>&1 & 

ИЛИ

 screen -d -m my_app 
Interesting Posts
Linux и Unix - лучшая ОС в мире.