我想从终端在后台启动一个 C 程序。该程序充当蓝牙驱动程序,这意味着它必须在系统运行时保持打开状态。我尝试使用 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 或类似的东西启动它。