我对 Linux 还很陌生,目前正在将服务器从 Windows 切换到 Centos 6.3。我编写了一个小型 UDP 服务器。UDP 服务器是用 C# 编写的,现在我采用它通过 Mono 与 Linux 配合使用。当我以这种方式运行它时,它运行良好:
/opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@"
如何在计算机统计时自动运行它?(Windows 术语:Windows 服务)
我尝试创建一个启动器文件并将其放入/etc/init.d
,但没有成功
答案1
对于此类问题,我的解决方案是安装并使用supervisord。
Supervisord 是一个 Python 进程管理器,可从发行版的软件包存储库轻松安装,配置也非常简单。只需为可执行文件添加一个简单的配置文件,管理器就会负责启动它、捕获输出,以及(可选)在进程失败时重新启动它。
示例配置如下:
[program:udp_server]
user = <username>
command = /opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@"
stdout_logfile = /var/log/udp_server-stdout.log
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile = /var/log/udp_server-stderr.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 5
答案2
此外,这个解决方案也有效:
我添加了一行文字/opt/mono/bin/mono /root/MySoft/UDPServer.exe "$@" &
到/etc/rc.d/rc.local