我知道 MySQLd 将创建一个 pid 文件,如 mysqld.service 中设置的那样:
ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
但是,它创建的文件具有660
权限,这意味着没有特权的用户甚至无法读取它。我希望我的用户能够读取它,以便检查服务是否正在运行(对于我的 i3 状态栏)。到目前为止,我已经能够使用钩子做到这一点ExecStartPost
:
ExecStartPost=/usr/bin/chmod a+r /var/run/mysqld/mysqld.pid
但我确信一定还有其他方法可以配置它。毕竟,我的其他服务和守护进程会生成更宽松的 pid 文件。
答案1
一些建议:
1 编写一个由 mysql 用户拥有的 cron 脚本,将“service mysqld status”的输出写入一个文本文件,该文件具有读取权限,以允许您的监控用户读取它。让 cron 脚本每分钟运行一次。
2 将您的监控用户添加到 mysql 用户所属的同一组。这将允许用户检查 PID 文件;尽管正如 @galaxy 提到的那样,这并不是解决您试图解决的问题的很好的方法。