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_installsystemddh_systemd_enableそしてdh_systemd_start

debian/<package>.serviceこれを使用するには、サービスファイルがあることを確認してから、管理者スクリプト()に次の行を追加するだけですdebian/{post,pre}{inst,rm}

#DEBHELPER#

この行は、サービスを有効/開始し、アップグレードを処理し、サービスをブロック(解除)するDebianの現在のサービスポリシーに置き換えられます。また、ユーザーのグローバル構成が尊重されていることを確認します(デフォルトでサービスを有効にしたくない場合)。

次に、通常(dpkg-buildpackageまたはdebuild)パッケージをビルドします。あなたのサービスは正しい場所にインストールされ、一部は補助コマンドstart/enable/unmask/stop/disable...管理者スクリプトに自動的に追加されインストールされる呼び出し操作は何ですか?

追加資料:


を使用しない場合(、debhelperを使用するか、パッケージを直接使用している可能性があります)、およびをに追加します。いくつかのグローバル設定と極端なケースはこの方法では扱いませんが、ほとんどが機能します。dpkg-debcpackarsystemctl enablesystemctl startpostinstsystemctl disablesystemctl stopprerm

関連情報