GNU/Linux >> Linux の 問題 >  >> Linux

systemd でのシャットダウン時に、他のすべての前にスクリプトを実行するにはどうすればよいですか?

サービス ファイルを作成または編集する必要はありません。スクリプトをドロップするだけです

/usr/lib/systemd/system-shutdown/

https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html

<ブロック引用>

実際のシステムを実行する直前に、halt/poweroff/reboot/kexec systemd-shutdown は /usr/lib/systemd/system-shutdown/ 内のすべての実行可能ファイルを実行し、「halt」、「poweroff」、「reboot」のいずれかの引数を渡します。選択したアクションに応じて、" または "kexec"。このディレクトリ内のすべての実行可能ファイルは並行して実行され、すべての実行可能ファイルが終了するまでアクションの実行は続行されません。

PC スピーカーのビープ音を鳴らすために使用します。


わかった!

解決策を取る StopExec による長時間実行プロセス 次のように変更します:

autobackup.service:

[Unit]
Description=Slow backup script
RequiresMountsFor=/mnt/BACKUP /home

[Service]
ExecStop=/etc/systemd/system/do_backup.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

次の行に注意してください:

RequiresMountsFor=/mnt/BACKUP /home

この方法で期待どおりに動作します。


Linux
  1. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  2. Linux –シャットダウン直前にsystemdでスクリプトを実行する方法は?

  3. Linux – SystemdでTtyを減らす方法は?

  1. Linux – Systemdで30分ごとにスクリプトを実行しますか?

  2. ネットワークサービスでStandardioを使用して単純なスクリプトを作成するようにSystemdを構成するにはどうすればよいですか?

  3. 権限を減らしてスクリプトの一部を実行するには?

  1. Systemdのスタートアップスクリプトを書く方法は?

  2. シャットダウン直前にsystemdでスクリプトを実行する方法は?

  3. root アクセスで実行するように Systemd サービスを構成する