Как запустить службу systemd только после запуска mysql?

Я работаю над проектом, который является mono EmailServer. Я попытался добавить службу в systemd, чтобы она запускалась автоматически во время загрузки, но у меня возникла проблема.

Я создал сценарий и добавил в /lib/systemd/system/emailserver.service а затем запустил ln -s /lib/systemd/system/emailserver.service /etc/systemd/system/emailserver.service .

Затем я выполнил systemd reload-daemon за которым следует systemctl start emailserver.service а затем, когда я запустил ps -ef |grep -i emailserver я могу увидеть, что mono EmailServer.exe запущен, все выглядит хорошо до сих пор.

Однако, когда я перезагружаю сервер в файле /var/log/messages он содержит следующее сообщение об ошибке

 Jul 16 19:41:02 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:02 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:03 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:03 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:03 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:04 dev-server systemd[1]: emailserver.service holdoff time over, scheduling restart. Jul 16 19:41:04 dev-server systemd[1]: emailserver.service start request repeated too quickly, refusing to start. 

В моем скрипте emailserver.service у меня есть следующее

 [Unit] Description=Boardies Email Server Startup Script [Service] ExecStart=/home/bits/EmailServer/start.email Restart=always [Install] WantedBy=multi-user.target 

Я использую OpenSuse 12.1

Что я делаю неправильно, спасибо за любую помощь, которую вы можете предоставить.

ОБНОВЛЕНИЕ Я выяснил, что заставляет программу перестать работать при загрузке, но я не знаю, как я могу исправить эту проблему. Моя программа основана на базе данных MySQL, и я думаю, что моя программа запускается до запуска MySQL, как я могу заставить свою службу загружаться до тех пор, пока MySQL не запустится.

Добавить After=mysql.service в ваш служебный файл (или изменить его на правильное имя службы), например:

 [Unit] Description=Boardies Email Server Startup Script After=mysql.service [Service] ExecStart=/home/bits/EmailServer/start.email Restart=always [Install] WantedBy=multi-user.target того, как [Unit] Description=Boardies Email Server Startup Script After=mysql.service [Service] ExecStart=/home/bits/EmailServer/start.email Restart=always [Install] WantedBy=multi-user.target 

Обратите внимание, что вам не нужно помещать ваш служебный файл в / lib / systemd / system, это предоставленный пользователем файл, и вы должны копировать его только в / etc / systemd / system.

Чтобы получить список всех служебных файлов, вы можете использовать systemctl list-unit-files и определить правильное имя для своей службы базы данных (возможно, это либо mysql.service, либо mysqld.service)