如何在后台启动服务器上的 C 程序到 运行

How to start C Program on Server to run in background

我编写了一个 C 程序并在我的 linux 计算机上进行了测试。

我现在已经将它上传到我的服务器,并希望它一直 运行 在那里作为后台进度。

关闭 putty 后,如何启动一个会继续 运行 的程序?

感谢您的帮助!

您可以通过在通话中添加 & 来退出程序 运行

因此,当您之前在 SSH 中像这样执行代码时:

./mycode

你会喜欢它:

./mycode &

如果您想 运行在后台运行您的程序,您必须在命令中添加“&”字符。

./program &

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

disown 命令可用于标记作业,以便在父 shell 收到 SIGHUP 信号时不会向它们发送信号。在关闭当前 tty 之前你可以这样写:

disown %jobID 

后台程序运行可以看到括号中的jobID。您还可以使用 jobs 命令查看 jobID。

你可以直接运行命令,这样SIGHUP信号就不会发给他了。为此,您可以使用 nohup 命令。

nohup ./program &

另一种避免以SIGHUP信号结束程序的方法是在程序中捕捉这个信号。在 C 程序中,您可以使用 signal.h

中的 signal 函数来执行此操作

但是如果你想运行程序作为守护进程或服务器,最好编写一个 Systemd 服务或 System V 初始化脚本。

在执行您的程序的过程中,如果您想 运行 您的程序在后台运行。 首先按 ctrl + z 然后输入 bg.