ber*_*436 4 process ssh process-management
我通过 ssh 进入一个虚拟服务器并启动一个 web 服务器。一切都按预期运行。但是当我在笔记本电脑上关闭终端时,该进程在虚拟服务器上终止。我该如何解决?
您可以使用disown,它是一个内置的 bash :
否认 [-ar] [-h] [jobspec ...]
如果没有选项,每个作业规范都会从活动作业表中删除。如果给出了 -h 选项,则不会从表中删除每个作业规范,而是将其标记为在 shell 收到 SIGHUP 时不会将 SIGHUP 发送到作业。如果不存在 jobspec,并且既没有提供 -a 也没有提供 -r 选项,则使用当前作业。如果没有提供jobspec, -a 选项表示删除或标记所有作业;不带 jobspec 参数的 -r 选项将操作限制为正在运行的作业。除非作业规范未指定有效作业,否则返回值为 0。
尝试这个:
$ <your command> &
$ disown
Run Code Online (Sandbox Code Playgroud)
首先,通过键入 使您的命令在后台运行<your command> &,然后使用disown,即使您的 ssh 会话断开连接,它也会使您的命令继续运行。
恕我直言,您应该使用工具来控制您的服务,例如supervisord或编写您自己的初始化脚本。