ターミナルからバックグラウンドで C プログラムを起動したいです。プログラムは Bluetooth ドライバーとして動作するので、システムの実行中は開いたままにしておく必要があります。nohup と start-stop-daemon を試しましたが、どちらの場合も C プログラムは exit コマンドを取得して閉じます。
ターミナルから C プログラムを起動し、バックグラウンドで実行するにはどうすればよいでしょうか。起動してから、GUI でターミナルを閉じることができるようにしたいです (起動した 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 などを使用してシステムの起動時に起動することを検討する必要があります。