CentOS jts3servermod service script

Started by Gamle, April 13, 2016, 05:49:05 PM

Previous topic - Next topic

Gamle

Create JTS3ServerMod as a service.
nano /etc/init.d/jts3servermod
Copy the service script and paste it. Then save the file.
chmod 755 /etc/init.d/jts3servermod
chkconfig --add jts3servermod

// If you want the bot to automatic start on system boot.
chkconfig --level 2345 jts3servermod on

Service script
#!/bin/sh
# chkconfig: 2345 99 10
USER="ts3bot"
TS3BOT='/home/ts3bot/JTS3ServerMod'
STARTSCRIPT="$TS3BOT/jts3servermod_startscript.sh"
cd $TS3BOT
case "$1" in
'start')
su $USER -c "$STARTSCRIPT start"
;;
'stop')
su $USER -c "$STARTSCRIPT stop"
;;
'restart')
su $USER -c "$STARTSCRIPT restart"
;;
'status')
su $USER -c "$STARTSCRIPT status"
;;
'java')
su $USER -c "$STARTSCRIPT status"
;;
*)
echo "Usage $0 start|stop|restart|status|java"
esac


ATTENTION: I'm not a extremely experienced linux user, so there can be some code/command mistake. I just share the code for the people there can't create a service script by them self.

stachu540

I'll share my SystemD service Config. When he is don't need a startscript. Works fine for me.

When you need to creating SystemD service we must create a file. In this case we're going to writting this command:

nano /usr/lib/systemd/system/jts3servermod.service

and copy all script include changes on: WorkingDirectory, ExecStart and User. It is just important where is our files and .jar file as our launcher.

[Unit]
Description=JTS3ServerMod
After=network.target

[Service]
WorkingDirectory=/home/ts3bot
User=ts3bot
ExecStart=java -mx30M -jar /home/ts3bot/JTS3ServerMod.jar &
TimeoutSec=300
RestartSec=15
Restart=always

[Install]
WantedBy=multi-user.target



After changeing script and source files we saving file content. And all is done.
Everything when we should doing to launching script is 2 important commands.
1. we need enable service by command: systemctl enable jts3servermod
2. now time to launching our service writting: systemctl start jts3servermod

And that's all.

ps. Everything about SystemD services can be found here

UncleSam

#2
I switched to Ubuntu 16.04 LTS and had to rewrite my JTS3ServerMod boot script. Sry it was a little bit too late. First I created one and then "oh ... lets search in the forum"  :o

(So it is tested for Ubuntu 16.04 LTS)

So I found two ways to start the bot. Each one has its benefits:

First way:
Execute is by using the new jts3servermod_startscript.sh from Stefan


Pro:
- Uses technology from stefan
Con:
- Is not having any benefits from SystemD


Code:
[Unit]
Description=JTS3Servermod
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service
Before=shutdown.target reboot.target halt.target


[Service]
WorkingDirectory=/home/tsbots/JTS3ServerMod_HostingEdition/
ExecStart=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod_startscript.sh start
ExecStop=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod_startscript.sh stop
Type=oneshot
User=tsbots
Group=tsbots
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target



Second way (my prefered):
Execut is directly by using java command


Pro:
- Benefits like "Restart" is possible and used (as soon as the service stopps without systemd stop command it restarts again)


Code:

[Unit]
Description=JTS3Servermod
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service


[Service]
PIDFile=/home/tsbots/JTS3ServerMod_HostingEdition/jts3servermod.pid
WorkingDirectory=/home/tsbots/JTS3ServerMod_HostingEdition/
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar JTS3ServerMod.jar
Type=simple
Restart=always
RestartSec=15
User=tsbots
Group=tsbots



[Install]
WantedBy=multi-user.target



Maybe someone is interested in this code - I use the upper one for all my programs/tools which already have good old sysvinit start scripts (never change a running system)  ;D