Saya mencoba untuk mendapatkan Mac OS X untuk menyimpan semua VM VirtualBox saya ketika reboot. Saya sudah memiliki skrip yang melakukan ini, tetapi saya perlu OS X untuk menjalankan skrip ini secara otomatis sebelum reboot.
Ketika Mac OS X reboot, apakah itu menjalankan / sbin / reboot?
Atau bagaimana lagi ini bisa dicapai?
/etc/rc.shutdown.local
untuk menjalankannya ketika dimatikan. Sepertinya itu yang Anda cari.Jawaban:
Meskipun Apple merekomendasikan untuk menggunakan " launchd ", cara termudah adalah membuat skrip shell menggunakan, misalnya, pico Terminal:
File dapat berisi sesuatu seperti:
Kemudian berikan hak eksekusi:
Akhirnya, kaitkan skrip ke prosedur logout:
Jika Anda memulai aplikasi lain, karena saya belum menguji ini, saya pikir mungkin berguna untuk memperingatkan diri saya dan Anda bahwa:
Kita mungkin perlu mematikan sinyal mematikan untuk menjalankan apa yang kita inginkan;
Kemudian kirim yang baru (jangan sampai membunuh sinyal yang dikirim oleh
skrip kami sendiri ) ...
Jika Anda ingin menghapus kail:
Jika menggunakan " launchd ", idenya adalah untuk menangkap sinyal SIGTERM. Lihatlah: /System/Library/LaunchDaemons/com.apple.shutdown_monitor.plist
sumber
Launchd mengirimkan peringatan dini shutdown ke semua skrip / daemon yang memiliki subrutin StopService () . Ini memberikan proses Anda paling banyak waktu untuk membersihkan.
Cukup gunakan launchd untuk memulai skrip dan menjalankannya di latar belakang sampai saatnya untuk keluar.
Setelah layanan yang mendapat peringatan dini ditutup, semua proses mendapatkan
SIGTERM
sinyal beberapa detik sebelumSIGKILL
nuklir mereka.Anda bisa membuat skrip yang tidur dan menjebak SIGTERM untuk menjalankan perintah Anda ketika saatnya tiba. Anda harus melihat apakah itu memungkinkan cukup waktu dalam praktik untuk menjalankan perintah. Ini menghindari sedikit pengkodean, tetapi tidak banyak - umumnya lebih baik membuat daemon dari skrip shell.
Dari perspektif sejarah -
/sbin/reboot
dan runlevel tidak pernah ada di Darwin / OS X danrc.shutdown
ditinggalkan bersama dengan sisa darirc
sekarang yanglaunchd
menjadi bos. Anda mungkin dapat menggunakan rc.shutdown pada harimau atau sebelumnya (saya tidak memiliki salah satu dari gambar-gambar itu untuk memeriksa saat ini) Lion tentu saja telah menghapus semua sisa dari rc.d dan init.d.Anda mungkin ingin melihat apakah pengamat tidur akan membantu dalam kasus Anda. Saya belum menggunakannya dalam waktu yang cukup lama - tetapi tentu saja ini bertujuan untuk menyelesaikan dilema Anda.
sumber