Запустить c-программу в фоновом режиме

Запустить c-программу в фоновом режиме

Я хочу запустить программу C в фоновом режиме из терминала. Программа действует как драйвер bluetooth, что означает, что она должна оставаться открытой, пока система работает. Я пробовал с nohup и start-stop-daemon, но в обоих случаях программа C получает команду выхода и закрывается.

Как мне запустить программу на языке C из терминала, которая затем будет работать в фоновом режиме? Я хочу запустить ее, а затем закрыть терминал в графическом интерфейсе (при этом запущенная программа на языке C будет продолжать работать).

Спасибо!

решение1

Похоже, что для запуска программы необходим управляющий терминал (вы можете узнать это, straceесли у вас нет исходного кода).

Вы можете предоставить программе управляющий терминал (даже при запуске ее как части загрузки системы), запустив ее через screen(ot tmux).

screen cmd arg1 arg2

решение2

Я думаю, чтобы полностью демонизировать программу, вам нужно сделать следующее:

nohup the_command args ... </dev/null >/dev/null 2>/dev/null &
disown

В зависимости от вашей системы, вам следует рассмотреть возможность запуска его при загрузке системы с помощью upstart или init или чего-то подобного.

Связанный контент