読み取りと休止(使用openvt -w
)の両方が実行されますが(read -p
メッセージが表示されます)、開始を一時停止することはできません。
私はオプションの組み合わせを試しました/etc/systemd/system/<service>
。
Type=oneshot
TimeoutSec=5000
StandardInput=tty
このユースケースは、サービススクリプトの実行が停止した後にのみGUIをロードします。 GUIがロードされる前に、sshfs(複数のユーザーとホスト名オプションを含む)を/ homeとしてマウントし、/ homeをローカルパーティション(デフォルト)に「固定」する必要があります。
答え1
「一時停止後の起動」はsystemdでは正しく機能しません。 systemd は複数のサービスを並列に実行します。
ただし、サービスに「依存関係」を追加した場合は、デフォルトで「開始を一時停止する必要がある」ポイントを指定してサービスを待つ必要があります。
上記のユースケースの場合は、以下を追加してください/etc/systemd/system/<service>
。
[Unit]
Description=commands to run before GUI loads
Before=display-manager.service
これは強制display-manager.service
的に待機します<service>
。私<service>
の場合ユーザー入力(接続されていない読者の場合)効果的に「開始を一時停止」します。
以下は、懐疑的な意見を表現した他のコメントの意見です。
この種のユースケースがあります。つまり、暗号化されたパーティションのロックを解除することです。 systemdのバグ(bugs.freedesktop.org/show_bug.cgi?id=88483)のため、デフォルトのsystemdメカニズムを使用して起動中に暗号化されたマルチデバイスBtrfs配列のロックを解除できません。数時間この回答を試した後は、自分のサービスファイルに必要な部分がないため、独自のシステムサービスファイルを作成する必要があります。ありがとうございます。