GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan skrip sebelum yang lainnya dimatikan dengan systemd?

Tidak perlu membuat atau mengedit file layanan. Cukup masukkan skrip Anda

/usr/lib/systemd/system-shutdown/

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

Segera sebelum menjalankan sistem sebenarnya halt/poweroff/reboot/kexec systemd-shutdown akan menjalankan semua executable di /usr/lib/systemd/system-shutdown/ dan memberikan satu argumen kepada mereka:baik "berhenti", "poweroff", "reboot " atau "kexec", tergantung pada tindakan yang dipilih. Semua executable dalam direktori ini dijalankan secara paralel, dan eksekusi tindakan tidak dilanjutkan sebelum semua executable selesai.

Saya menggunakannya untuk membunyikan speaker PC.


Saya mengerti!

Ambil solusi Proses yang berjalan lama dengan StopExec dan modifikasi seperti ini:

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

Perhatikan baris:

RequiresMountsFor=/mnt/BACKUP /home

Cara ini berfungsi seperti yang diharapkan.


Linux
  1. Bagaimana Cara Menulis Script Startup Untuk Systemd?

  2. Bagaimana cara membuat skrip Python dijalankan sebagai layanan?

  3. Bagaimana cara menjalankan sebagian skrip dengan hak istimewa yang dikurangi?

  1. Linux – Bagaimana Cara Menjalankan Script Dengan Systemd Tepat Sebelum Shutdown?

  2. Linux – Bagaimana Mendapatkan Lebih Sedikit Ttys Dengan Systemd?

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?

  1. Linux – Jalankan Script Setiap 30 Menit Dengan Systemd?

  2. Bagaimana Mengkonfigurasi Systemd Untuk Menghidupkan Script Sederhana Dengan Standardio Dalam Layanan Jaringan?

  3. Bagaimana menghentikan layanan systemd