在 ubuntu 上运行服务器应用程序的最佳方法是什么?

在 ubuntu 上运行服务器应用程序的最佳方法是什么?

这是我第一次尝试运行 Linux 服务器。我有一个服务器应用程序,我想在具有 ssh 访问权限的服务器上运行它。

如果这是 Windows 服务器,我只需打开远程桌面,运行该程序并断开远程桌面会话即可。但是,据我所知,注销 ssh 会话会终止其中生成的所有进程。

所以我做了一些搜索,似乎我必须使用screentmux才能在断开连接后保持我的进程运行。但是,我想知道是否有更好的方法。服务器进程应该能够从 stdin 读取控制命令,我更希望能够查看一些 stdout 日志输出(尽管其余部分不可避免地会进入日志文件)。


更新:我目前正在 tmux 会话中运行该应用程序。它似乎运行正常,但我不太觉得这是最好的方法...

答案1

要在 Linux 中运行服务器,请将其添加到由 运行的事物中systemd。服务由一个简短的文件描述service,该文件放在指示系统状态的/etc/systemd/system/{target}/位置(通常为)。服务描述包括要运行的可执行文件以及如果退出该做什么等内容。例如,服务器:{target}multi-user.target.wantsmysql

# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755

一旦文件设置完毕,您就可以使用以下systemctl命令:

  • systemctl start {service}启动服务器
  • systemctl stop {service}停止服务器
  • systemctl enable {service}使服务器在启动后启动
  • systemctl disable {service}防止服务器在重启后启动

相关内容