Supervisorctl 支持分组功能,可以针对组进行统一管理,但是superivsor美中不足在于,服务间重启依赖没有类似“钩子”功能,而systemd恰恰解决了这个问题,虽然它备受吐槽,研究透了,很好用!
1. 需求描述
游戏启动/停止,需要严格按照顺序执行
1 | 即,当一个服务启动后,再启动另一个服务。 |
2. 配置环境变量文件
vim /etc/server_env.conf
1 | [Service] |
3. 服务配置说明
cd /etc/systemd/system && cat server1.service
1 | [Unit] |
4. 持久化systemd日志
vim /etc/systemd/journald.conf
1 | [Journal] |
systemctl restart systemd-journald
Journald日志以二进制方式持久化到本地,持久化目录为:/var/log/journal。之所以使用二进制可以有效预防日志被篡改。二进制日志不可直接读取,需要使用journalctl命令格式化后查看。
查看某个服务的日志
1 | 查看dbmgr服务的所有log |
5. 将日志转发到syslog
1 | 查看是否已安装rsyslog |
此时,自定义服务通过systemd启动的日志可以通过以下命令查看
1 | tail -f /var/log/messages |
6.关于服务最大连接数的坑
systemd没有遵循系统级别的最大连接数(ulimit限制)设定值,且以普通用户启动的服务,默认最大连接数为1024,所以,为了保障服务稳定运行,同时又能容纳几千人(甚至更高的)同时在线需求,就需要针对单服务设定不限制最大连接数。
1 | ... |
附录:systemctl常用命令
1 | 重新加载配置文件 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2021/03/22/迎接systemd放弃supervisor/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!