2
systemd:尚不支持基于套接字的激活的按需启动服务,例如postgresql和mysql
在笔记本电脑上,我仅使用MySQL和PostgreSQL进行测试。在开始编程之前(在启动后可能需要几个小时),我不需要它们。但是手动启动服务并输入我的sudo密码是一个(小)麻烦。 我读到systemd仅在访问该服务的端口时才支持启动服务。但是Google快速搜索似乎表明PG&MySQL还不支持基于套接字的激活。 我知道我可以使用shell脚本破解此代码,也可以等待维护者修复服务,但是现在(出于教育目的)我正在寻找一种更好的方法。 问题:如何以一种利用系统功能或被推荐为Linux“最佳实践”的方式来实现此类服务的按需启动? 一些想法: 我可以安装一项服务来根据条件(例如正在运行的特定进程)来处理自动启动和自动停止服务吗? 是否存在由套接字激活并依次启动目标服务的代理服务? systemd 229,Kubuntu 16.04,MySQL 5.7,PostgreSQL 9.5 更新:答案: 我如何使用Siosm建议的systemd-socket-proxyd: /etc/mysql/mysql.conf.d/mysqld.cnf port = 13306 /etc/systemd/system/proxy-to-mysql.socket [Socket] ListenStream=0.0.0.0:3306 [Install] WantedBy=sockets.target /etc/systemd/system/proxy-to-mysql.service [Unit] Requires=mysql.service After=mysql.service [Service] # note: this path may vary ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:13306 PrivateTmp=no PrivateNetwork=no 根据需要重新加载/停止/启动: sudo systemctl daemon-reload sudo systemctl enable proxy-to-mysql.socket sudo systemctl start proxy-to-mysql.socket …