如何全天候运行可执行文件(Web应用程序)并在发生故障时自动重新启动?

如何全天候运行可执行文件(Web应用程序)并在发生故障时自动重新启动?

我在服务器上有一个可执行文件,它是一个功能齐全的独立 Web 应用程序。当我通过 ssh 登录到服务器并运行该文件时,该网站就会在互联网上可见。显然,因为它是我通过 ssh 运行的,当我断开连接时,网站就会关闭。

全天候运行该文件的惯用且简单的方法是什么,并且最好在文件关闭时重新启动?

这是 Ubuntu 15,但我的问题更广泛,因为我想学习如何在其他发行版上做到这一点。

我不想使用任何第三方解决方案或 Web 服务,只想使用标准 Linux 工具和应用程序。

我应该为 systemd 创建一个服务吗?

答案1

是的,创建systemd服务是可行的方法。您需要编写一个服务文件,对于您来说,这不需要太多。以下是此类文件的概要:

[Unit]
Description=your description here
After=syslog.target

[Service]
ExecStartPre= [script to run before starting the service]
ExecStart= [script to run the actual service]
Restart=on-abort

[Install]
WantedBy=multi-user.target

这应该放在 中/etc/systemd/system/yourservice.service。现在您可以使用命令启动、停止、重新启动并查找服务状态systemctl。您可以在网络和此站点上找到各种其他示例和选项。

此解决方案可移植到所有运行 的 Linux 系统systemd。对于运行 SysV 或 Upstart 的系统,您必须寻找其他解决方案。

相关内容