mysql이 시작된 후에 만 ​​시스템 서비스를 시작하려면 어떻게해야합니까?


15

모노 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이 시작될 때까지 어떻게 서비스가로드되지 않도록 할 수 있습니까?


답변:


30

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

서비스 파일을 / lib / systemd / system에 넣을 필요는 없으며, 사용자가 제공 한 파일이므로 / etc / systemd / system에만 복사해야합니다.

사용할 수있는 모든 서비스 파일 목록을 얻으 systemctl list-unit-files려면 데이터베이스 서비스의 올바른 이름 (mysql.service 또는 mysqld.service 일 수 있음)을 결정하십시오.


우리는 복수 After=*.service주문할 수 있습니까?
Ciasto piekarz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.