Enable persistent user systemd services
1
loginctl enable-linger $user
Create a user systemd directory
1
mkdir ~/.config/systemd/user
Create a systemd configuration
1
touch my-service.service
Example service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=myservice
After=network.target
[Service]
EnvironmentFile=/home/user/.myservice_env
Restart=always
RestartSec=5
ExecStart=/usr/bin/java -jar /home/user/my-service.jar
[Install]
WantedBy=multi-user.target
# WantedBy=default.target *use this if you want to start on boot*
For more info and details of options checkout this
Reload the user daemon (this must be done on every change to your service file)
1
systemctl --user daemon-reload
Starting and or stop your service as needed
1
systemctl --user [start|stop|restart] my-service
Jenkins Agent
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=jenkins-slave
After=network.target
[Service]
Restart=always
RestartSec=5
ExecStart=/usr/bin/java -jar /var/lib/jenkins-slave/slave.jar -jnlpUrl https://jenkins.livenaked.com/computer/agent-hk/slave-agent.jnlp -secret 2b32308b5454ac2019819d84f14b824a0d76bc57deaab1f2fcfb5b612651dbcc -workDir "/var/lib/jenkins"
[Install]
WantedBy=multi-user.target