
실행 가능한 형식으로 사용 가능한 서버를 구축했으며 이를 시작/중지/다시 시작할 수 있는 서비스로 등록하고 싶습니다.
나는 다음 질문을 읽었고 다른 많은 사람들도 그것을 좋아했습니다.>실행 파일을 서비스로 실행하는 방법은 무엇입니까?
내 문제는 sudo systemctl stop myexecutableservice
.
현재 상황에서는 서비스를 중지해도 백그라운드 프로세스가 계속 실행되고 서버가 계속 요청을 수락합니다.
답변1
이것은 가장 간단한 경우에 대한 답입니다.
여러분이 해야 할 일은 /etc/systemd/system/myservice.service
섹션이 있는 INI 파일을 만드는 것뿐입니다 [Service]
.
매우 간단한 서비스는 다음과 같습니다.
[Service]
ExecStart=/usr/bin/myapp arg1 arg2
서비스가 존재하는지 확인한 다음 sudo systemctl start myservice
또는 sudo systemctl stop myservice
.
Service
이 섹션에서는 사용자 정의, 작업 디렉터리, 환경 변수, 포크된 프로세스 관리 방법, 프로세스 중지 방법, 우선 순위 등 다른 많은 작업도 수행할 수 있습니다. 보다 systemd.service(5)
이 섹션의 작동 방식에 대한 세부정보입니다.
로그에 표시할 섹션을 [Unit]
정의하고 다른 장치와의 관계를 정의하는 섹션을 추가할 수도 있습니다 . Description=
바라보다 systemd.unit(5)
.
[Install]
섹션을 선언하는 것도 가능합니다. 이를 사용하면 어떤 일이 발생하는지 정의할 수 있습니다 systemctl enable myservice
. 바라보다 systemd.unit(5)
.
답변2
내 실행 파일은 모든 종료 이벤트에서 종료되지 않은 다른 프로세스를 시작했기 때문에 새 .service 파일을 만들고 실행 파일로 다시 컴파일했습니다. 이제는 잘 작동합니다.