MusicBot icon indicating copy to clipboard operation
MusicBot copied to clipboard

[Wiki edit] Feature a systemd example file

Open Wobak opened this issue 4 years ago • 5 comments

Is your feature request related to a problem? Please describe. No way to put the server headless on an auto startup mechanism

Describe the solution you'd like Example systemd service file

Describe the basic flow/steps of using this feature How this feature would be used:

  1. In the setup alongside the example config.txt

Additional context I created the file and put it here as an example :

Have you confirmed that this idea is not already described here? Yes

[Unit]
Description=JMusic Bot
After=network.target network-online.target

[Service]
Environment=JMusicDIR=/opt/JMusicBot
Environment=JMusicExec=JMusicBot-current.jar
Environment=JMusicCfg=config.txt
Environment=LC_ALL=en_US.UTF-8
Environment=LANG=en_US.UTF-8
ExecStart=/usr/bin/java -Dnogui=true -Dconfig=${JMusicDIR}/${JMusicCfg} -jar ${JMusicDIR}/${JMusicExec}
Type=simple
User=JMusic
Group=JMusic
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3

Then :

# systemctl start discordmusicbot.service
# systemctl status discordmusicbot.service
● discordmusicbot.service - JMusic Bot
   Loaded: loaded (/etc/systemd/system/discordmusicbot.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-02-08 14:19:52 CET; 2s ago
 Main PID: 9263 (java)
    Tasks: 27 (limit: 410012)
   Memory: 176.6M
   CGroup: /system.slice/discordmusicbot.service
           └─9263 /usr/bin/java -Dnogui=true -Dconfig=/opt/JMusicBot/config.txt -jar /opt/JMusicBot/JMusicBot-current.jar

Feb 08 14:19:52 newbox.wobak.fr systemd[1]: Started JMusic Bot.
Feb 08 14:19:55 newbox.wobak.fr java[9263]: [14:19:55] [WARN] [Settings]: Failed to load server settings (this is normal if no settings have been set ye>
Feb 08 14:19:55 newbox.wobak.fr java[9263]: [14:19:55] [INFO] [Startup]: Loaded config from /opt/JMusicBot/config.txt

Wobak avatar Feb 08 '21 13:02 Wobak

This may fit more in the setup wiki page, or perhaps a separate wiki page: Using service managers for JMusicBot.

MichailiK avatar Sep 15 '21 23:09 MichailiK

so is this an open issue to get correct systemd configuration, or request to update the wiki with configuration steps?

Osanchez avatar Sep 18 '21 18:09 Osanchez

Latter, a request to update the Wiki with a systemd example.

MichailiK avatar Sep 18 '21 18:09 MichailiK

still new to systemd, but was able to get it working with this config. Added isntall section to make sure network is working before it tries to run the bot (at least from my understanding)

[Unit]
Description=JMusic Bot
After=network-online.target

[Service]
Environment=JMusicDIR=/home/BotUser/Musicbot
Environment=JMusicExec=JMusicBot-0.3.5.jar
Environment=JMusicCfg=config.txt
Environment=LC_ALL=en_US.UTF-8
Environment=LANG=en_US.UTF-8
ExecStart=/usr/bin/java -Dnogui=true -Dconfig=${JMusicDIR}/${JMusicCfg} -jar ${JMusicDIR}/${JMusicExec}
Type=simple
User=BotUser
Restart=on-failure

[Install]
WantedBy=network-online.target

as a pre-req, I had a non root user created on my ubuntu machine named BotUser.

unit file will be created under (musicbot.service) /etc/systemd/system/

commands to enable and add service to systemd sudo systemctl start musicbot.service sudo systemctl enable musicbot.service

any changes to service file you will need to run sudo systemctl daemon-reload

Osanchez avatar Sep 18 '21 19:09 Osanchez

Hi,

I had already put one in my first comment :)

Wobak avatar Sep 19 '21 10:09 Wobak