C 后台运行程序
我的程序是用C语言编写的,有6个源文件,目的是将这些文件复制到任何其他Linux操作系统计算机上,并且(可能是编译,我是新手,所以不确定这里需要什么)在后台运行这个程序。比如:C 后台运行程序,c,linux,C,Linux,我的程序是用C语言编写的,有6个源文件,目的是将这些文件复制到任何其他Linux操作系统计算机上,并且(可能是编译,我是新手,所以不确定这里需要什么)在后台运行这个程序。比如: user@laptop:~$ program 程序正在后台运行。要停止程序,请键入 XXX 有什么建议吗 提前谢谢 放置一个守护进程(0,0)调用你的C程序 停止它有点棘手,我想程序只有一个副本在运行。将程序的PID放入一个文件中,编写另一个实用程序(XXX),从文件中读取PID并将其终止 重要提示:daemonfo
user@laptop:~$ program
程序正在后台运行。要停止程序,请键入
XXX
有什么建议吗
提前谢谢 放置一个守护进程(0,0)代码>调用你的C程序
停止它有点棘手,我想程序只有一个副本在运行。将程序的PID放入一个文件中,编写另一个实用程序(XXX
),从文件中读取PID并将其终止
重要提示:daemon
forks,调用daemon后获取程序的PID
但也许你太新手了,只想用程序&
执行你的程序,然后杀死它。我完全误解了这个问题。您需要为此编写shell脚本
对于文件复制,您可以使用scp
。使用ssh
在另一台主机上执行命令。它应该类似于(未测试):
以后你可以用
ssh user@host "kill $pid"
首先,您应该使用fork()
在父进程中,您应该退出,在子进程中,您应该处理SIGHUP信号
这样,您就拥有了守护进程 是的,我太新手了,不能用第一种方法,但我需要它,像这样做。你能给我提供关于第一个解决方案的更多信息(更多细节,最好是一段代码)吗?非常感谢不,你没有。您先发布的解决方案是可以的。我在一个文件中有PID,我试图使用kill()
并终止进程,但我不知道应该发送什么信号。我尝试了0,不工作,然后我尝试了一些raise()
信号,但也不工作。我应该使用什么?我会在SIGTERM之前尝试SIGQUIT:这有点礼貌:)
ssh user@host "kill $pid"