![루트가 필요한 스크립트를 시작하기 위해 systemd 서비스를 사용하는 방법은 무엇입니까?](https://linux55.com/image/110345/%EB%A3%A8%ED%8A%B8%EA%B0%80%20%ED%95%84%EC%9A%94%ED%95%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20systemd%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
CentOS에서 무언가를 시작하려고 하는데 해결 방법을 모르는 몇 가지 문제가 발생했습니다.
이것은 내 .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.service
및 이후에는 systemctl 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 접근 방식보다 훨씬 간단합니다.
이것은 파일의 첫 번째 명령에 대해 여전히 공개 질문입니다.