Я знаю, что 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 напишите cron-скрипт, принадлежащий пользователю mysql, чтобы записать вывод "service mysqld status" в текстовый файл, для которого установлены разрешения на чтение, позволяющие вашему контролирующему пользователю читать его. запускать скрипт cron раз в минуту.
2 Добавьте вашего контролирующего пользователя в ту же группу, к которой принадлежит пользователь mysql. Это позволит пользователю проверить файл PID; хотя, как упоминал @galaxy, на самом деле это не очень хороший подход к проблеме, которую вы пытаетесь решить.