追加読書

追加読書

サービスを開始したいsamplerbox.service

[Unit]
Description=Starts SamplerBox

[Service]
Type=simple
ExecStart=/root/SamplerBox/samplerbox.sh          # this script does: python /root/SamplerBox/samplerbox.py
WorkingDirectory=/root/SamplerBox/

[Install]
WantedBy=multi-user.target

今後 networking.service(DHCP事項、IP所有権など)が完了しました。

注:私のプログラムはネットワークをまったく使用しません。


これはプロットです(ここが大きいサイズ):

ご覧のとおり、完了をsamplerbox.service待っていますnetworking.service。 (複数回テストしてみましたが、すべて同じです。)

試してみました。WantedBy=multi-user.target別のものに交換しWantedBy=sound.targetsystemctl disable samplerbox.service再度有効にしましたが…うまくいきませんでした!

サービスを強制的に最初に開始する方法はnetworking.service

ベストアンサー1

samplerbox.serviceネットワークが完了したら起動します。

しかし、実際に起こるのではなく、偶然に起こったことです。見たら注意深い図から 。samplerbox.service後で始まるのがわかりますbasic.target。これは正常な現象であり、systemdによって設計されています。ほとんどの(非システム)サービスには、サービス単位に記録されていない暗黙の依存関係とシーケンスである「基本依存関係」セットがあります。依存関係basic.targetと後続の順序は、サービス単位でデフォルト値が明示的に無効にされない限り、systemdによって適用されるデフォルト値の1つです。

また、順序と依存関係を混同しています。さまざまな "want" ディレクティブ (たとえば、WantedBy使用しているディレクティブとその逆ディレクティブWants) は依存関係を指定します。サービス A の開始を要求すると、サービス B も開始するようにシステム・キューにジョブがあります。彼らがするいいえこれらの操作の順序を指定します。順序は他の設定、つまり名前がやや明確で、によってBefore制御されますAfter

ジョブの開始と停止を指定する完全な依存関係セットは、次の簡単なコマンドで構築されますsystemctl start graphical.target。順序は、これらのジョブの実行時間と順序を指定します。

追加読書

  • レナート・ペトリング(2013-10-07)。 systemd.unit。システムのマニュアルページ。 freedesktop.org.
  • レナート・ペトリング(2013-10-07)。 systemd.service。システムのマニュアルページ。 freedesktop.org.

おすすめ記事