テストのために、単一のsystemdタイマーペアサービスユニットを手動で実行することは可能ですか?


21

--user条件の下で1日1回実行するタイマー/サービスユニットセットがあります。systemctl --user statusジャーナルとともに表示され、ログに記録されますが、コマンドの一部が失敗します。

コマンド内の何かが正しく解釈されていないようです。問題をデバッグするために、ユニットファイルを使用してサービスを実行し、ログを調べたいなどです。ただし、タイマーを編集して将来の1分間をトリガーし、待機し、ログをチェックするのは退屈です。

systemctl --user execute xxxxxx.serviceまるでタイマーがトリガーされたかのようにちょっとしたことを実行するようなことができますか?

回答:


12

ユニットにRefuseManualStart=yesand / or RefuseManualStop=yesディレクティブが含まれている場合を除き、ユニットを手動でアクティブ化できます(ディレクティブは正確に動作します)。ただ発行しますsystemctl --user start <whatever>(そしてsystemctl --user stop <whatever>反対のことをします)。

systemctl(1)を引用するには:

パターンを開始...

コマンドラインで指定された1つ以上のユニットを開始(アクティブ化)します。

<...>

パターンを停止...

コマンドラインで指定された1つ以上のユニットを停止(非アクティブ化)します。


ここでは動作しません:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584

1
@ eMPee584この回答が書かれて以来、systemdは新しいディレクティブRefuseManualStart=を取得しましたRefuseManualStop=(それはまさに彼らが言うことをします)。それに言及するために回答を更新しました。
Intelfx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.