Saya ingin menjalankan perintah sederhana tepat sebelum komputer dimatikan (waktunya tidak penting).
Untuk startup, saya bisa menggunakan /etc/rc.local; adakah yang serupa dengan shutdown?
Perhatikan bahwa saya masih ingin menggunakan tombol shutdown terintegrasi dari menu; yaitu saya tidak ingin menggunakan skrip khusus setiap kali saya mematikan melalui terminal - itu harus otomatis.
sumber
sudo update-rc.d /etc/init.d/myservice defaults
Sekarang varian Ubuntu dan Mint telah pindah ke systemd saya menemukan solusi lama saya berdasarkan di atas menjadi kurang memuaskan. Saya mencari di seluruh web untuk mengetahui bagaimana melakukannya dengan systemd dan akhirnya menggabungkan kebijaksanaan orang lain dan mendokumentasikannya sebagai posting blog di blogspot.com.au yang berisi tutorial berikut.
Dengan systemd Anda membuat satu atau dua file untuk memanggil skrip Anda menggunakan templat di bawah ini, dan menjalankan beberapa perintah. Sederhana.
Versi GUI
Pertama buat skrip yang ingin Anda jalankan saat startup dan / atau shutdown. Saya membuat .scopening_atstart dan .scfullcopy_atend.
Kemudian pastikan keduanya dapat dieksekusi dengan mengklik kanan file, memilih properti dan memastikan bahwa, di bawah izin, Anda telah mencentang Izinkan mengeksekusi file sebagai program.
Dua file yang saya buat mengisi dan menyimpan konten ramdisk. Mereka juga membuat file di direktori rumah saya untuk membuktikan bahwa layanannya berfungsi. Mereka adalah bentuk:
Kemudian saya membuka file manager saya sebagai root, membuka
/etc/systemd/system
dan membuat file startup.service dan file save-ramdisk.service. Jelas Anda dapat memilih nama Anda sendiri dan nama generik dapat menyertakan file startup yang disebut johns_start.service dan file shutdown yang disebut johns_shutdown.service. Hanya saja, jangan memilih nama layanan yang ada.dan
Anda dapat menggunakan file layanan yang sama, menggantikan jalur lengkap skrip yang dapat dieksekusi untuk saya.
Akhirnya untuk masing-masing jalankan perintah systemctl aktifkan your_files_name (tetapi tanpa layanan akhiran). Jadi yang pertama adalah
systemctl enable startup
Nyalakan kembali komputer satu kali untuk memulai layanan. Layanan mulai akan dijalankan setiap kali systemd memasuki target multi-pengguna dan layanan berhenti ketika keluar dari target multi-pengguna. File layanan alternatif dengan berbagai kondisi aktivasi akan dijelaskan di bawah ini.
Versi CLI (Command Line)
Deskripsi ini mengasumsikan bahwa Anda beroperasi dari direktori home Anda daripada / home / john, gunakan sudo sesuai kebutuhan, dan editor pilihan Anda tempat saya menulis vim atau svim.
Buat skrip startup dan shutdown shell dengan baris pertama
#!/bin/sh
dan buat agar dapat dieksekusi menggunakanchmod +x my_new_filename
.Buat dua file seperti di atas, atau dalam contoh ini, satu file untuk menangani tugas-tugas startup dan shutdown. Saya akan menjalankan skrip di direktori home saya tetapi @don_crissti menunjukkan beberapa alternatif di Stack Exchange .
dan salin dalam konten file:
Kemudian Aktifkan Layanan dengan perintah:
dan reboot sistem Anda setelah itu layanan akan aktif. Perintah
systemctl is-enabled start_and_stop
dansystemctl is-active start_and_stop
dapat digunakan dalam memonitor layanan baru Anda.Mengubah Kondisi Pemicu Shutdown
File-file di atas semua menggunakan buka atau tutup lingkungan multi-pengguna untuk memulai menjalankan skrip. File di bawah ini menggunakan awal dari empat proses mematikan potensial untuk memulai skripnya. Menambahkan atau menghapus target pada baris Sebelum + baris WantedBy akan membuat Anda membuat perbedaan yang lebih baik:
File ini diusulkan pada jawaban kedua posting ini tetapi saya tidak dapat menjalankannya sampai saya menambahkan bagian Instal.
Sekali lagi, edit skrip
/etc/systemd/service/
dan aktifkan menggunakansystemctl enable your_file_name
. Ketika saya mengubah target, saya menggunakansystemclt disable file_name
perintah dan kemudian mengaktifkannya kembali yang menghubungkannya dengan direktori target. Reboot dan layanan akan beroperasi.sumber
Anda perlu menggunakan
rc.shutdown
skrip shutdown untuk Kernel Linux. Mengutip halaman manual OpenBSD :Jadi, Anda cukup membuka rc.shutdown dan menambahkan perintah shell apa pun yang ingin Anda jalankan.
UPDATE: Karena Linux Mint didasarkan pada Ubuntu, yang memiliki prosedur startup / shutdown yang berbeda, berikut adalah prosedur yang relevan untuk Anda:
Tulis skrip shell yang ingin Anda jalankan dan salin ke direktori yang relevan di blog Anda
/etc/rc*.d/
. The*
bersesuaian dengan runlevel di mana Anda ingin script untuk mengeksekusi.Ubuntu mengikuti penomoran runlevel Debian, sehingga Anda memiliki runlevel 0 untuk berhenti dan runlevel 6 untuk reboot.
sumber
Untuk sistem init berbasis ketergantungan SysV yang digunakan dalam Debian Wheezy, Devuan dan turunannya dan mungkin yang lain, Anda dapat meniru perilaku
rc.shutdown
analog untukrc.local
menyukai yang berikut ini:Tambahkan perintah Anda ke kerangka berikut
/etc/rc.shutdown
:Simpan skrip dan buat file tersebut dapat dieksekusi
chmod a+x /etc/rc.shutdown
.Kemudian, tambahkan skrip baru
/etc/init.d/rc.shutdown
ke sistem Anda dengan konten berikut:Jadikan juga skrip ini dapat dieksekusi.
Buat symlink di /etc/rc[06[.d:
cd /etc/rc0.d ; ln -s ../init.d/rc.shutdown K01rc.shutdown
dan
cd /etc/rc6.d ; ln -s ../init.d/rc.shutdown K01rc.shutdown
Gunakan
insserv
untuk memperbaiki symlink dan membuat file .depend.boot, .depend.start, dan .depend.stop yang diperlukan:Anda harus melakukan root atau menggunakan sudo untuk semua perintah yang disebutkan di atas.
sumber