systemd로 간단한 서비스 구성

systemd로 간단한 서비스 구성

우리는 프로젝트를 구축하는 원격 에이전트와의 지속적인 통합을 위해 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출력 확인).

관련 정보