바이너리 세트(.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-deb
cpack
ar
systemctl enable
systemctl start
postinst
systemctl disable
systemctl stop
prerm