Debian パッケージのインストールでインスタンス化されたサービスを有効にしてみてください。

Debian パッケージのインストールでインスタンス化されたサービスを有効にしてみてください。

自分のシステムに内部構成 deb がインストールされています。まず第一に、パッケージの説明に従ってシリアルコンソールを有効にできることを願っています。http://0pointer.de/blog/projects/serial-console.html

私のパッケージのpostinstで実行できることをお勧めします。適切なアップグレード/削除動作を保証するには、debhelperを使用するのが最善です。しかし、私は以下を見つけました。systemd enable [email protected]

  • dh_systemd_enableインスタンスユニットの名前を使用してファイルから呼び出すことはできませんrules。実際のファイルを指す必要があります(deb-systemd-helper最終実行を実行して直接呼び出しを試みる場合も同様です)。
  • debhelperを使用してターゲットユニットをインストールできますが、正常に動作させることはできません。

私の目標ユニットは次のとおりです。

[Unit]
Description=Serial Console

[Install]
WantedBy=getty.target
[email protected]

有効化および/または起動でき、 で実行中としてマークされますが、systemctl status必要なインスタンスサービスは開始されません。

だから私の質問は2つの部分に分かれているようです。第一に、なぜ私のターゲットデバイスが期待どおりに動作しないのか、第二に、Debianパッケージングでこれを達成するための最良の方法はありますか?

答え1

  1. このディレクティブはではなくセクションRequiresに表示する必要があります。[Unit][Install]
  2. 代わりに、パッケージにシンボリックリンクを送信してください。まず、存在する場合は自動的にインポートすると仮定しましたが、シリアルデバイスの場合、これらの依存関係はメインカーネルコンソールにのみ追加されますが、ここではそうではありません。バラより/lib/systemd/system/getty.target.wants/[email protected] -> /lib/systemd/system/[email protected][email protected]getty.targetsystemd-getty-generatorhttp://0pointer.de/blog/projects/serial-console.html詳しくはこちらをご覧くださいman systemd-getty-generator

関連情報