如何让你的cpp服务器在SSH 断开后使进程仍在后台运行

如何让你的cpp服务器在SSH 断开后使进程仍在后台运行

  • 前言
    • 本文目的
  • 正文
    • 1.方法: 使用 nohup 命令:
    • 2.那么问题又来了,把程序运行到后台了,你要如何关掉./my-project-exe呢?
  • 如果0基础,可以使用现有的框架搭建自己的博客网站
  • 每日反思

前言

现在是2023-11-30 19:47 ,一晃一年又过去了,谁能想象一年前还是2022-11-30 19:48!!!

本文目的

如何让你关掉Xshell后 , 你使用ssh连接的远程阿里云服务器上运行的cpp服务器还在正常运行?


正文

1.方法: 使用 nohup 命令:

nohup your_command &

这会将 your_command 放入后台,并且使用 nohup 命令可以使其在你断开SSH连接后继续运行。输出将会追加到一个名为 nohup.out 的文件中,该文件将位于你运行命令的目录中。

例子:

nohup ./my-project-exe &
  • 提问: 后面那个&可以去掉吗?
  • 答:no!不可以去掉 !
    • 在Linux或Unix系统中,& 符号用于将命令放入后台运行。如果你执行 nohup ./my-project-exe,该命令将在后台运行,但是如果你关闭终端或SSH连接,该进程可能会收到 SIGHUP 信号并终止。(不信?你就试一下呗,我试了,情况属实!)
    • 通过添加 &,你告诉系统将该命令放入后台,并且即使你关闭终端或SSH连接,该进程也会继续运行。因此,& 是确保进程在后台持续运行的重要部分。
    • 所以,如果你想要确保你的进程在你退出SSH会话后继续运行,应该保留 &。

2.那么问题又来了,把程序运行到后台了,你要如何关掉./my-project-exe呢?

如果你想停止运行 ./my-project-exe 进程,可以使用 kill 命令。首先,你需要找到该进程的进程ID(PID),然后使用 kill 命令发送适当的信号来终止进程。
以下是一般步骤:

  1. 使用 ps 命令找到进程ID(PID):
ps aux | grep my-project-exe
  1. 上述命令会列出所有包含 “my-project-exe” 的进程,其中包括进程的详细信息以及对应的PID。找到你想要停止的进程的PID。

使用 kill 命令终止进程:

kill PID

将 PID 替换为你找到的实际进程ID。

如果想要强制终止进程,可以使用 -9 选项,但请注意,这可能导致进程未能正确清理资源。示例:

kill -9 PID

注:请谨慎使用强制终止,最好首先尝试不带 -9 选项的 kill 命令。


如果0基础,可以使用现有的框架搭建自己的博客网站

请参考下面这位up主的教程:

https://b23.tv/vR9SJCR

我尝试了一下,确实很不错!

这位up使用到了下面两个网站:
https://app.netlify.com/teams/1aob/overview
https://themes.gohugo.io/

每日反思

远方

你可能感兴趣的:(Linux,服务器,ssh,github)