systemctl service inicia executável, mas desliga logo após

0

O arquivo launch-service.sh deve ser executado pelo arquivo phantombot.service. Eu olhei no serviço de systemctl phantombot se o serviço realmente começou. O serviço começa e é fechado após cerca de 11 segundos. (veja abaixo)

launch-service.sh :

#!/bin/bash
#
# PhantomBot Launcher - Linux and macOS
#
# Please run the following to launch the bot, the chmod is required only once.
# % chmod +x launch-service.sh
# % ./launch-service.sh
#

unset DISPLAY

if [[ $(uname) -eq "Darwin" ]]; then
    SOURCE="${BASH_SOURCE[0]}"
    while [ -h "$SOURCE" ]; do
        DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
        SOURCE="$(readlink "$SOURCE")"
        [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
    done
    DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
    cd "$DIR"
else
    cd $(dirname $(readlink -f $0))
fi

if type -p java 1>/dev/null 2>/dev/null; then
    _java=java
elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]];  then
    _java="$JAVA_HOME/bin/java"
else
    echo "You don't have Java installed! Download it from https://www.java.com/en/download/"
fi

java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

/etc/systemd/system/phantombot.service :

[Unit]
Description=PhantomBot
After=network.target remote-fs.target nss-lookup.target

[Service]
User=botuser
Group=botuser
Restart=on-failure
RestartSec=30
ExecStart=/home/botuser/phantombot/launch-service.sh
KillSignal=SIGTERM

[Install]
WantedBy=multi-user.target

Isso mostra o status do systemctl logo depois que eu iniciei o serviço:

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2017-09-09 16:08:14 CEST; 21min ago
  Process: 13145 ExecStart=/home/botuser/phantombot/launch-service.sh (code=exited, status=0/SUCCESS)  Main PID: 13145 (code=exited, status=0/SUCCESS)
botuser@Ubuntu-1704-zesty-64-minimal:~/phantombot$ sudo /bin/systemctl start phantombot

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-09-09 16:30:18 CEST; 1s ago
 Main PID: 13295 (launch-service.)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/phantombot.service
           ├─13295 /bin/bash /home/botuser/phantombot/launch-service.sh
           └─13300 java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-09-09 16:30:18 CEST; 3s ago
 Main PID: 13295 (launch-service.)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/phantombot.service
           ├─13295 /bin/bash /home/botuser/phantombot/launch-service.sh
           └─13300 java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-09-09 16:30:18 CEST; 5s ago
 Main PID: 13295 (launch-service.)
    Tasks: 28 (limit: 4915)
   CGroup: /system.slice/phantombot.service
           ├─13295 /bin/bash /home/botuser/phantombot/launch-service.sh
           └─13300 java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-09-09 16:30:18 CEST; 9s ago
 Main PID: 13295 (launch-service.)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/phantombot.service
           ├─13295 /bin/bash /home/botuser/phantombot/launch-service.sh
           └─13300 java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-09-09 16:30:18 CEST; 11s ago
 Main PID: 13295 (launch-service.)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/phantombot.service
           ├─13295 /bin/bash /home/botuser/phantombot/launch-service.sh
           └─13300 java -Dfile.encoding=UTF-8 -jar PhantomBot.jar

$ systemctl status phantombot
● phantombot.service - PhantomBot
   Loaded: loaded (/etc/systemd/system/phantombot.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2017-09-09 16:30:31 CEST; 703ms ago
  Process: 13295 ExecStart=/home/botuser/phantombot/launch-service.sh (code=exited, status=0/SUCCESS)  Main PID: 13295 (code=exited, status=0/SUCCESS)

Você vê o serviço realmente iniciado por 11 segundos até ser desligado. Se eu executar o arquivo. /launch-service.sh diretamente via linha de comando, ele não será encerrado.

Eu segui este guia passo a passo.

Obrigado por qualquer ajuda em andvanced. :)

Alguma sugestão que está errada aqui?

Este é um problema de permissão? Posso executá-lo em algum tipo de modo detalhado para ver os erros que desligam o deamon?

    
por code1x1.de 09.09.2017 / 16:40

1 resposta

1

Eu encontrei o erro. Foi um erro de permissão. Alguns arquivos de log que os arquivos javascript desejavam acessar eram ownd por root. Isso fez com que o arquivo init.js lançasse um erro de Permissão negada que encontrei no journalctl através do comando sudo journalctl -u phantombot -b .

Eu realmente me pergunto como o programa foi iniciado pela primeira vez sem erros.

Mas de qualquer maneira obrigado pela ajuda.

    
por code1x1.de 10.09.2017 / 12:13