systemd サービスを使用してルート権限を必要とするスクリプトを起動するにはどうすればいいですか?

systemd サービスを使用してルート権限を必要とするスクリプトを起動するにはどうすればいいですか?

CentOS の起動時にいくつかのことを開始しようとしていますが、解決方法がわからない問題が発生しています。

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

systemctl daemon-reload、および の後ではsystemctl enable my.servicesystemctl start my.service実際には何も起こらない/機能しないようです。

出力は次のよう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.

おそらく、すべてが機能するはずでしたが、機能しません...
ただし、boot.sh を手動で実行すると、機能します。

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

SonarQube にはルート権限が必要であることに注意してください。
何が間違っているのでしょうか?

アップデート:ログ元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.

答え1

SonarQube の場合、代わりに次のようにしました。https://devopscube.com/setup-and-configure-sonarqube-on-linux/は、SonarQube をサービスとして追加する方法を説明していますが、奇妙なことに、これは systemd のアプローチよりもかなり簡単でした。

ファイル内の最初のコマンドについては、まだ未解決の問題です...

関連情報