Como iniciar scripts que precisam de raiz usando um serviço systemd?

2

Estou tentando iniciar algumas coisas na inicialização no CentOS, mas estou encontrando alguns problemas que não sei como resolver.

Aqui está o arquivo my.service:

[Unit]
Description="Boot Jenkins slave and SonarQube server"
After=network.target

[Service]
Type=simple
ExecStart=/var/boot.sh
User=root
Group=root

[Install]
WantedBy=default.target

Depois de systemctl daemon-reload , systemctl enable my.service e systemctl start my.service , nada realmente parece acontecer / funcionar.

A saída de systemctl status my.service é:

$ systemctl status my.service 
● startup.service - "Boot Jenkins slave and SonarQube server"
   Loaded: loaded (/etc/systemd/system/my.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Wed 2017-04-26 19:49:31 IDT; 1min 41s ago
  Process: 988 ExecStart=/var/boot.sh (code=exited, status=0/SUCCESS)
 Main PID: 988 (code=exited, status=0/SUCCESS)

Apr 26 19:49:00 build-1 systemd[1]: Started "Boot Jenkins slave and SonarQube server".
Apr 26 19:49:00 build-1 systemd[1]: Starting "Boot Jenkins slave and SonarQube server"...
Apr 26 19:49:00 build-1 boot.sh[988]: Starting SonarQube...
Apr 26 19:49:01 build-1 boot.sh[988]: Started SonarQube.

Supostamente, as coisas deveriam ter funcionado, mas elas não funcionam ...
No entanto, se eu executar manualmente o boot.sh, eles funcionam.

su ...
./boot.sh

boot.sh é:

#!/bin/bash

nohup java -jar /var/jenkins/slave.jar -jnlpUrl https://***.jnlp -secret **** &
/var/sonarqube-6.3/bin/linux-x86-64/sonar.sh start

Observe que o SonarQube requer raiz.
O que estou fazendo de errado?

Atualizar: registros de cat /var/log/messages | grep SonarQube :

Apr 26 20:58:53 build-1 systemd: Started "Boot Jenkis slave and SonarQube server".
Apr 26 20:58:53 build-1 systemd: Starting "Boot Jenkis slave and SonarQube server"...
Apr 26 20:58:53 build-1 boot.sh: Starting SonarQube...
Apr 26 20:58:53 build-1 boot.sh: Started SonarQube.
    
por Idan Adar 26.04.2017 / 19:41

1 resposta

0

Para o SonarQube, acabei seguindo o seguinte: link , que instrui como adicione o SonarQube como um serviço ... que era estranhamente mais simples que a abordagem systemd.

Para o primeiro comando no arquivo, ainda é um problema em aberto ...

    
por 26.04.2017 / 21:13