スクリプトが完了したら、コンピュータを再起動したいと思います。oneshot
次の再起動時に現在のサービスを開始しないでください。次のシステム単位ファイルを作成しました。
仮想サービス
[Unit]
Description=Custom Unit File Automation
Wants=multi-user.target
After=multi-user.target
SuccessAction=reboot
[Service]
User=veeru
Type=oneshot
RemainAfterExit=no
ExecStart=/bin/bash -c "<command> <args>"
StandardOutput=/var/log/command_out.log
StandardError=/var/log/command_err.log
ExecStartPost=/bin/bash -c "/usr/bin/sudo /usr/bin/systemctl disable /etc/systemd/system/playbook_2.service"
[Install]
WantedBy=multi-user.target
サービスを無効にできましたsystemctl
。ただし、コンピュータを再起動できませんstatus
。
Jun 28 01:45:55 hyddrogen systemd[1]: [/etc/systemd/system/dummy.service:5] Unknown lvalue 'SuccessAction' in section 'Unit'
サービスを無効にしてコンピュータを再起動するための適切なオプションはありますか?挿入できますが、reboot
挿入しExecStartPost
たくない
修正する
私SuccessAction
に選択肢がありました。文書
ベストアンサー1
少し掘り下げて、私はこれを行う方法を見つけました。これは私のユニットファイルです
[Unit]
Description=Custom Unit File Automation
After=default.target
DefaultDependencies=no
Before=shutdown.target
[Service]
User=veeru
Type=oneshot
RemainAfterExit=no
ExecStart=/bin/bash -c "<command> <args>"
StandardOutput=file:/var/log/command_out.log
StandardError=file:/var/log/command_err.log
ExecStartPost=/usr/bin/sudo /usr/bin/systemctl disable /etc/systemd/system/dummy.service
ExecStop=/usr/bin/sudo /usr/sbin/reboot
[Install]
WantedBy=default.target
~からsystemd "oneshot"サービスがシャットダウンをトリガーします。、再起動する前にデーモンを停止するより良い方法であるとDefaultDependencies=no
追加しました。Before=shutdown.target