我目前拥有安装了Centos7的VPS。我也有一个编程' Steambot '我想把VPS放到VPS上并让它在VPS上线时自动运行。我不知道如何做到这一点,研究并注意到/ r / SteamBot subreddit上的帖子,VPS上需要单声道才能实现这一点。不确定是否真实,这使我来到这里。
我目前拥有安装了Centos7的VPS。我也有一个编程' Steambot '我想把VPS放到VPS上并让它在VPS上线时自动运行。我不知道如何做到这一点,研究并注意到/ r / SteamBot subreddit上的帖子,VPS上需要单声道才能实现这一点。不确定是否真实,这使我来到这里。
Answers:
首先让它“手动”运行。如果您还没有,请安装 EPEL 和 单 ,让机器人工作。你基本上需要编写一些能够启动命令并保持运行的东西。
编写一个init脚本来启动它。 Centos 7使用systemd,它可以让你做一些像自动重启这样的东西。我自己并没有潜入systemd,但它有很好的记录。
我通常使用的方法是 supervisord 。它不是系统级别。将在失败时重新启动,并具有可选的webui
你的supervisord脚本就像这样简单
command=command to run steambot
directory=directory you want to run steambot in
autostart=true
startretries=5
stderr_logfile=/var/log/supervisor/ttrss/ttrss.err.log
user=www-data
这会记录错误,您可以在日志标准输出中添加一行以进行故障排除。
最简单的方法是编写systemd服务。 Systemd有很多可能性,你没有指定你想要的东西,所以我会给你一个非常简单的脚本:
[Unit]
Description=Some comment here about what this does
After=network.target
[Service]
EnvironmentFile=-/path/to/flag/setting/file
ExecStart=/absolute/path/to/executable $FLAGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
User=%i
Group=users
[Install]
WantedBy=multi-user.target
应在文件中设置$ FLAGS变量 /path/to/flag/setting/file
,如果它是一个复杂的选择,否则只需删除此行并替换下面的行
ExecStart=/absolute/path/to/executable -i -f -d
或者你需要的任何标志。上面应该放入一个名为的文件中 myservice@.service
。这种方式可以称为
systemctl myservice@MyName.service
并且可执行文件将以用户MyName身份运行。您应该将上面的文件放入 /etc/systemd/user
,以便它作为用户服务运行,而不是系统服务。这样做的好处是任何用户都可以运行它,而不仅仅是root。你可以随时控制它 systemctl --user
。
如果您不关心其他用户是否能够运行该服务,请使用该行
User=MyName
保存文件 myservice.service
,并控制它而不传递参数,如 systemctl myservice ...