Bir systemd hizmetini ancak mysql başladıktan sonra nasıl başlatabilirim?


15

Mono bir EmailServer olan bir proje üzerinde çalışıyorum. Sistemin önyükleme sırasında otomatik olarak başlaması için bir hizmet eklemeyi denedim ama bir sorun yaşıyorum.

Komut dosyasını oluşturdum ve ekledim /lib/systemd/system/emailserver.serviceve çalıştırıyorum ln -s /lib/systemd/system/emailserver.service /etc/systemd/system/emailserver.service.

Sonra çalıştırılacak olan systemd reload-daemonizledi systemctl start emailserver.serviceve sonra ben çalıştırdığınızda ps -ef |grep -i emailserverSonra görebilirsiniz mono EmailServer.exeşimdiye kadar, çalıştığı bütün seyir iyi.

Ancak, sunucuyu /var/log/messagesdosyada yeniden başlattığımda aşağıdaki hata iletisini içeriyor

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.

E-posta sunucum.service betiğimde aşağıdakiler var

[Unit]
Description=Boardies Email Server Startup Script

[Service]
ExecStart=/home/bits/EmailServer/start.email
Restart=always

[Install]
WantedBy=multi-user.target

OpenSuse 12.1 kullanıyorum

Neyi yanlış yapıyorum, verebileceğiniz her yardım için teşekkürler.

GÜNCELLEME Programın önyüklemede çalışmayı durdurmasına neyin neden olduğunu öğrendim, ancak bu sorunu nasıl çözebileceğimden emin değilim. Programım bir MySQL veritabanına dayanıyor ve sanırım MySQL başlamadan önce programım başlatılıyor, MySQL başladıktan sonra hizmetimin nasıl yüklenmeyeceğini düşünüyorum.


Yanıtlar:


30

After=mysql.serviceHizmet dosyanıza ekleyin (veya doğru hizmet adına değiştirin), örneğin:

[Unit]
Description=Boardies Email Server Startup Script
After=mysql.service

[Service]
ExecStart=/home/bits/EmailServer/start.email
Restart=always

[Install]
WantedBy=multi-user.target

Lütfen servis dosyanızı / lib / systemd / system içine koymanız gerekmediğini, kullanıcı tarafından sağlanan bir dosya olduğunu ve sadece / etc / systemd / system dosyasına kopyalamanız gerektiğini unutmayın.

Tüm hizmet dosyalarının bir listesini almak için kullanabilirsiniz systemctl list-unit-filesve veritabanı hizmetiniz için doğru adı belirleyebilirsiniz (muhtemelen mysql.service veya mysqld.service'dir)


Birden fazla After=*.servicesipariş verebilir miyiz ?
Ciasto piekarz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.