우리는 프로젝트를 구축하는 원격 에이전트와의 지속적인 통합을 위해 Bamboo 서버를 사용하고 있습니다. 이러한 에이전트는 간단한 쉘 스크립트(잘 작동함)를 사용하여 시작할 수 있습니다. 하지만 더 나아가서 systemd
에이전트를 부팅 시 자동으로 시작하고 사람들이 systemctl
명령을 통해 에이전트를 시작/중지할 수 있도록 하는 단위로 만들 생각입니다. 이것이 내가 시도한 것입니다.
[Unit]
Description=Atlassian Bamboo Agent
After=syslog.target network.target
[Service]
Type=forking
User=shub
Group=shub
ExecStart=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh start
ExecStop=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh stop
[Install]
WantedBy=multi-user.target
내가 해본 것보다 더 많은 것 systemctl daemon-reload
. 문제는 재부팅 후 에이전트가 시작되지 않고, 이상하게 동작한다는 점입니다(서비스가 가끔 다시 시작되거나 이후 제대로 시작되지 않는 방식 systemctl start
). 그럼 내가 뭘 잘못하고 있는 걸까요? Type
로 변경하는 것을 고려했지만 simple
에이전트가 백그라운드 서비스로 실행되도록 하고 싶습니다(실행 후 백그라운드에서 에이전트를 실행하는 스크립트 자체).
답변1
여러 가지 질문을 하셨습니다. "부팅 시 사용자 정의 시스템 서비스가 시작되지 않는 이유는 무엇입니까?"라는 질문에 답하겠습니다.
대답은 아직하지 않았기 때문입니다.활성화됨그것. 을 실행하면 systemctl enable my-service-name
유닛 [Install]
파일의 블록이 실행됩니다.
이 경우 systemd에게 까지 기다리도록 지시했습니다 multi-user.target
.
명령을 실행하면 enable
심볼릭 링크가 생성되고 /etc/systemd/system/multi-user.target.wants/
심볼릭 링크가 있으면 실제로 systemd
부팅 시 서비스가 시작되었음을 나타냅니다.
"이상하게 행동하는" 의견을 자세한 내용이 포함된 별도의 질문으로 바꾸는 것이 좋습니다. 아마도 무슨 일이 일어나고 있는지에 대한 시스템 로그의 세부 정보를 포함할 수 있습니다. ( journalctl
출력을 확인하십시오).