Saya menjalankan ubuntu 11.10 di mesin virtual (VirtualBox) untuk mempelajari lebih lanjut tentang pengembangan di linux. Saya menggunakan repositori git untuk menyimpan pekerjaan saya dan telah menulis skrip untuk menggabungkan pekerjaan saya dan menyimpannya ke folder bersama untuk digunakan saat mesin virtual tidak berjalan.
Saya ingin menjalankan skrip ini secara otomatis sebelum shutdown sehingga pekerjaan saya selalu tersedia jika vm dimatikan (saat ini saya harus menjalankan skrip secara manual).
Saya tidak tahu apakah pemula adalah cara terbaik untuk mencapai ini, tetapi ini adalah konfigurasi yang saya tulis sebagai ujian:
description "test script to run at shutdown"
start on runlevel [056]
task
script
touch /media/sf_LinuxEducation/start
sleep 15
touch /media/sf_LinuxEducation/start-long
end script
pre-start script
touch /media/sf_LinuxEducation/pre-start
sleep 15
touch /media/sf_LinuxEducation/pre-start-long
end script
post-start script
touch /media/sf_LinuxEducation/post-start
sleep 15
touch /media/sf_LinuxEducation/post-start-long
end script
pre-stop script
touch /media/sf_LinuxEducation/pre-stop
sleep 15
touch /media/sf_LinuxEducation/pre-stop-long
end script
post-stop script
touch /media/sf_LinuxEducation/post-stop
sleep 15
touch /media/sf_LinuxEducation/post-stop-long
end script
Hasilnya adalah hanya satu sentuhan yang dicapai (sentuhan pertama di awal). Apa yang perlu saya ubah untuk melihat salah satu sentuhan setelah tidur bekerja? Atau apakah ada cara yang lebih mudah untuk mencapai ini?
Terima kasih sebelumnya.
test.conf
hanyalah nama file acak. Anda bisa dengan mudah menggunakannyawhatEverYouWant.conf
. Komentar Anda juga menunjukkan bahwa Anda tidak membaca "Buku Masak" yang disebutkan dalam jawaban. Jika Anda melihat di bagian 4.2, File Konfigurasi Pekerjaan dijelaskan dengan lebih seksama.Saya pikir ini tidak dapat dilakukan melalui pemula , sebagai script /etc/init.d/endendsigs , yang dipanggil oleh pemula saat menghentikan / memulai kembali, membunuh semua proses (
killall5 -9
) dalam 10 detik, dan bahkan jika itu tidak berhasil, ia pergi untuk meng-unmount semuanya dan shutdown.Cara terbaik adalah dengan menggunakan skrip gaya /etc/init.d yang sudah usang.
Contoh: /etc/init.d/shutdown_job
Kemudian aktifkan skrip
Ini akan menempatkan script sebelum script sendigs pada runlevel 0 a 6 (shutdown, reboot). Skrip sampel ini akan merekam tanggal, lalu tidur selama 20 detik, lalu merekam kembali tanggal ke /root/s.log .)
Info lebih lanjut:
man update-rc.d
sumber
touch /media/sf_LinuxEducation/start
dantouch /media/sf_LinuxEducation/start-long
tepat di sebelah perintah tanggal. Tanggal dicatat, tetapi sentuhan tidak tersentuh. Ini membuat saya bertanya-tanya apakah drive itu dilepas pada saat skrip dijalankan. Saya pikir ini mungkin ada hubungannya dengan argumen NN, meskipun saya tidak yakin bagaimana cara kerja argumen ini (halaman manual menjelaskannya dengan cara yang sangat membengkokkan pikiran). Bagaimana Anda tahu nomor (atau pasangan angka) apa yang harus ditetapkan dalam argumen ini?/etc/rc6.d
direktori. Jadi 19 shutdown script harus telah dilaksanakan sebelum unmounting apapun dilakukan (> 31). Tetapi mengapa tidak mencoba hipotesis Anda dan menyentuh file/root
sebagai gantinya?/etc/rc6.d
menunjukkan bahwa folder bersama sedang dipasang / dilepas denganK70vboxadd
skrip. Apakah mengubah argumen NN (untuk skrip saya) menjadi 71 membuat skrip saya dijalankan sebelum meng-unmount folder VB yang dibagikan? Saya akan mencobanya hari ini.touch /root/start
sebelumsleep 20
perintah dan tidak ada file yang dibuat. Saya bahkan tidak tahu harus mulai dari mana mencari tahu alasannya. Tanggal yang gembira ditambahkan ke/root/s.log
berkas mengapa saya tidak bisa menyentuh file?