答え1
パラメータは通常サービスファイルの行にありますExecStart=
。
# /lib/systemd/system/myservice.service
[Unit]
ExecStart=/bin/myprogram arg1 arg2
提供したリンクの1つを使用してください。テンプレート化パラメータの1つを定義するサービス
# /lib/systemd/system/[email protected]
[Unit]
ExecStart=/bin/myprogram %i
[Install]
WantedBy=multi-user.target
これにより、異なるパラメータを使用して同じサービスの複数のインスタンスを有効にできます。
systemctl enable --now [email protected]
systemctl enable --now [email protected]
/bin/myprogram arg1
これにより、2つのインスタンスが異なるパラメータを使用して実行されます /bin/myprogram/arg2
。
GUIを開かなくてもサービスを開始できますか?
これで具体的に知ることができます。 Dockerを管理するGUIを起動するサービスがあるようです。この場合、私の疑いはsystemd
間違った場所にあります。コンテナを実行しない可能性がdocker-desktop.service
ありますが、実行中のサービスと対話できるインターフェイスを提供するだけです。サービスは、systemd
介入なしにすべてのコンテナインスタンスを子プロセスとして管理できます。
一度見てください(推測だけです)
systemctl list-units *docker*
コンテナ管理を担当する実際のサービスが明らかになると確信しています。
Dockerコンテナには通常、これらのランチャーは必要なく、通常はsystemdを介して管理できますが、.service
各コンテナには独自のパラメータセットを持つファイルが必要です。