Ubuntu 14.04システム構成プロセスの一環として、スクリプトが完了するまでユーザーがログインできないようにしたいと思います。私は次のようなスタートアップの仕事をしています。
start on (local-filesystems and net-device-up IFACE!=lo)
stop on [!12345]
script
#launch the bash script that does install
/bin/bash /path/to/provisioning-script.sh
end script
スクリプトは起動時に実行されますが、ユーザーがログインするのを防ぎません。私もスタートコマンドを試しました
start on starting lightdm
しかし:
- ログインを妨げない
- lightdm を使用するシステムでのみ使用できます。一部のシステムはコマンドラインでのみ起動します。
次のコードを使用して、Ubuntu 16.04(systemd)で目的を達成しました。
[Unit]
DefaultDependencies=no
After=network.target
Before=systemd-user-sessions.service
[Service]
Type=oneshot
ExecStart=/bin/bash /path/to/provisioning-script.sh
StandardOutput=journal+console
StandardError=journal+console
[Install]
RequiredBy=systemd-user-sessions.service
ありがとうございます!
答え1
私は質問の最初の部分に答えました。サービスフェーズでスクリプトを実行するのではなく、ステップで実行したいとstarted
思います。prestart
これを行うには、prestart
スクリプトタグの前に追加する必要があります。
本質的に、結果としてコマンドが完了するstarted
までサービスは考慮されず、prestart
サービスが開始されるまでlightdmサービスは開始されませんstarted
。
start on starting lightdm
stop on [!12345]
prestart script
#launch the bash script that does install
/bin/bash /path/to/provisioning-script.sh
end script