在后台运行程序

时间:2011-07-23 12:21:27

标签: c linux

我的程序是用C,6个源文件,目的是将这些文件复制到任何其他Linux操作系统计算机,并且(可能是编译,我是新手,所以不知道这里需要什么)在后台运行这个程序。类似的东西:

user@laptop:~$ program 
  

程序在后台运行。要停止程序,请键入   XXX。

有关此的任何提示吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

在您的C程序中加注daemon(0,0);次。

停止它有点棘手,我想只有一个程序副本在运行。将程序的PID放在一个文件中,编写另一个实用程序(XXX),从文件中读取PID并将其杀死。

重要:daemon分叉,在调用守护进程后获取程序的PID。

但也许你太新了,只想用program&及以后kill执行你的程序。

答案 1 :(得分:0)

我完全误解了这个问题。你需要shell脚本。

对于文件复制,您可以使用scp。使用ssh在其他主机上执行命令。它应该是(未经测试):

pid=`ssh user@host "make >/dev/null 2>&1; nohup ./program; echo $!`

以后你可以用

来阻止它
ssh user@host "kill $pid"

答案 2 :(得分:0)

首先,你应该fork()。

在父级中,您应该在子进程中退出 - 您应该处理SIGHUP信号。

以这种方式 - 你有守护进程。