Debian에서 deb 패키지를 서비스로 설치

Debian에서 deb 패키지를 서비스로 설치

바이너리 세트(.NET 6 기반)가 포함된 Deb 패키지가 있지만 이러한 애플리케이션을 Debian 시스템에 서비스로 설치해야 합니다.

서비스 설치를 수동으로 수행할 수 있습니다. , 제공 bash 스크립트가 포함된 Deb 패키지를 만드는 방법에 대한 약간의 입력이 필요합니다.

다음은 참조용 스크립트입니다. 어떤 조언이라도 대단히 감사하겠습니다.

#!/bin/bash
#IEC Service 
sudo nano /etc/systemd/system/ProtocolService
[Unit] 
Description=Protocol Service Provider 
[Service] 
WorkingDirectory= /home/debian/publish/ServiceProvider 
ExecStart=/usr/bin/dotnet /home/debian/publish/ServiceProvider.dll 
Restart=always 
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes 
SyslogIdentifier=offershare-web-app 
Environment=ASPNETCORE_ENVIRONMENT=Production 
[Install] 
WantedBy=multi-user.target
#start the service
sudo systemctl daemon-reload
sudo systemctl enable service_name 
sudo systemctl start service_name

답변1

가장 좋은 방법은 다음과 같습니다.데브 도우미~의dh_installsystemd,dh_systemd_enable그리고dh_systemd_start.

debian/<package>.service이를 사용하려면 서비스 파일이 있는지 확인한 다음 관리자 스크립트( )에 다음 줄을 추가하기만 하면 됩니다 debian/{post,pre}{inst,rm}.

#DEBHELPER#

이 줄은 서비스를 활성화/시작하고, 업그레이드를 처리하고, 서비스를 차단 (해제)하는 데비안의 현재 서비스 정책으로 대체됩니다. 또한 사용자의 전역 구성이 존중되는지 확인합니다(기본적으로 서비스가 활성화되는 것을 원하지 않는 경우).

그런 다음 정상적으로 ( dpkg-buildpackage또는 debuild) 패키지를 빌드하십시오. 귀하의 서비스는 올바른 위치에 설치되며 일부는보조 명령start/enable/unmask/stop/disable...관리자 스크립트에 자동으로 추가되고 설치되는 호출 작업은 무엇입니까 ?

추가 자료:


을 사용하지 않는 경우 ( , debhelper를 사용 하거나 패키지를 직접 사용 중일 수 있음 ) 및 를 및 에 추가하세요 . 일부 전역 설정 및 극단적인 경우는 이런 방식으로 다루지 않지만 대부분 작동합니다.dpkg-debcpackarsystemctl enablesystemctl startpostinstsystemctl disablesystemctl stopprerm

관련 정보