2016-08-15 66 views
0

我编写了一个C程序并在我的Linux计算机上对其进行了测试。如何在服务器上启动C程序以在后台运行

我已经将它上传到我的服务器,并希望它在整个运行期间作为后台进程运行。

如何启动一个在关闭腻子后继续运行的程序?

感谢您的帮助!

回答

1

你可以离开这个项目,通过增加&的号召

所以运行时,你一直在SSH之前执行这样的代码:

./mycode 

你把它想:

./mycode & 
1

如果您想要在后台运行程序,您必须将'&'字符添加到命令中。

./program & 

但是该过程将与当前tty关联。如果关闭当前的tty(在你的情况下为SSH会话),SIGHUP信号被发送到与tty相关的所有进程,导致它们完成。您可以使用ps命令查看关联的tty到一个进程。

不对命令可用于标记作业,以便SELLUP信号不发送给它们,如果父shell收到它。在关闭当前tty之前,您可以编写:

disown %jobID 

当您在后台运行程序时,可以看到括号中的jobID。您也可以通过作业命令查看jobID。

您可以直接运行该命令,以便SIGHUP信号不会发送给他。为此,您可以使用nohup命令。

nohup ./program & 

避免用SIGHUP信号结束程序的另一种方法是在程序中捕获该信号。在C程序中,您可以使用信号做到这一点 signal.h中的函数

但是,如果要将程序作为守护程序或服务器运行,最好编写Systemd服务或System V init脚本。

相关问题