Systemd service keeps activating and deactivating

Viewed 38

I am trying to launch a mc server on system boot-up using a systemd service file. When starting the service file, the server actually launches and works, but the service keeps on activating and deactivating indefinitely when it should only activate once. This basically causes the server to start and stop continuously.

This is the content of my service file:

[Unit]
Description=Launches MC Server on boot
After=network.target

[Service]
TimeoutStartSec=10
User=MyUser
WorkingDirectory=/home/MyUser/Desktop/server
ExecStart=screen -S mcserver -d -m java -server -Xmx8G -Xms4G -jar /home/MyUser/Dekstop/server/server.jar nogui
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "say Server will shutdown in 1 min"\015'
ExecStop=sleep 60
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "say Server will shutdown now!"\015'
ExecStop=sleep 5
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "save-all"\015'
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "stop"\015'
ExecStop=sleep 10

[Install]
WantedBy=multi-user.target

When the services starts it keeps on activating successfully and then deactivating over and over again:

user@user:~$ journalctl -fu mc-server.service
Sep 10 10:40:03 user systemd[1]: Started Launches MC Server on boot.
Sep 10 10:41:18 user systemd[1]: mc-server.service: Deactivated successfully.
Sep 10 10:41:18 user systemd[1]: mc-server.service: Consumed 1min 25.233s CPU time.
Sep 10 10:41:18 user systemd[1]: Started Launches MC Server on boot.
Sep 10 10:42:33 user systemd[1]: mc-server.service: Deactivated successfully.
Sep 10 10:42:33 user systemd[1]: mc-server.service: Consumed 1min 59.057s CPU time.
Sep 10 10:47:46 user systemd[1]: Started Launches MC Server on boot.
Sep 10 10:49:01 user systemd[1]: mc-server.service: Deactivated successfully.
Sep 10 10:49:01 user systemd[1]: mc-server.service: Consumed 2min 6.571s CPU time.
Sep 10 11:01:08 user systemd[1]: Started Launches MC Server on boot.
Sep 10 11:02:23 user systemd[1]: mc-server.service: Deactivated successfully.
Sep 10 11:02:23 user systemd[1]: mc-server.service: Consumed 1min 44.849s CPU time.
Sep 10 11:02:23 user systemd[1]: Started Launches MC Server on boot.

(at this point, I manually stopped the service)

Any ideas how I can stop this service from continuously activating?

1 Answers

Your configuration looks good. Some issue with your java command which is bailing out. Try to run manually java command i.e java -server -Xmx8G -Xms4G -jar /home/MyUser/Dekstop/server/server.jar nogui and see if it runs. I tried below simple systemd service using screen and works fine.

# /usr/lib/systemd/system/myservice.service
[Unit]
Description=My Test

[Service]
ExecStart=screen -S mcserver -d -m yes
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "say Server will shutdown in 1 min"\015'
ExecStop=sleep 60
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "say Server will shutdown now!"\015'
ExecStop=sleep 5
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "save-all"\015'
ExecStop=screen -p 0 -S mcserver -X eval 'stuff "stop"\015'
ExecStop=sleep 10

[Install]
WantedBy=multi-user.target
Related