Saya memodifikasi skrip yang bertanggung jawab untuk mengirimkan sinyal kill dengan penundaan yang dialokasikan, /etc/init.d/sendigs, dan mengurangi jumlah waktu yang diperlukan untuk mematikan proses yang tersisa dalam 2 iterasi. Sehat atau tidak itu menyelesaikan pekerjaan di sistem saya dan tidak lagi tergantung pada shutdown dan restart.
Di bawah ini adalah bagian dari /etc/init.d/sendigs dengan modifikasi yang ditunjukkan oleh # <---:
# Kill all processes.
log_action_begin_msg "Asking all remaining processes to terminate"
killall5 -15 $OMITPIDS # SIGTERM
log_action_end_msg 0
alldead=""
OMITPIDS0="$OMITPIDS"
#for seq in 1 2 3 4 5 6 7 8 9 10; do # this is the original line
for seq in 1 2; do # <--- the above line is replaced by this one.
lalu di bagian bawah skrip:
# Upstart has a method to set a kill timeout and so the job author
# may want us to wait longer than 10 seconds (as in the case of
# mysql). (LP: #688541)
#
# We will wait up to 300 seconds for any jobs in stop/killed state.
# Any kill timeout higher than that will be overridden by the need
# to shutdown. NOTE the re-use of seq from above, since we already
# waited up to 10 seconds for them.
while [ -n "$(upstart_killed_jobs)" ] ; do
seq=$(($seq+1))
#if [ $seq -ge 300 ] ; then # this is the original line
if [ $seq -ge 2 ] ; then # <--- I can't wait for another 300 iteration
break
fi
CATATAN: Ini mungkin bukan solusi terbaik karena skrip asli bekerja pada sistem lain, untuk sistem seperti milik saya di mana beberapa solusi yang disarankan tidak berlaku - ini adalah apa yang bisa saya bagikan mengingat saya hanya menjalankan sistem sebagai workstation tanpa layanan penting berjalan setelah menutup semua aplikasi desktop yang saya gunakan sebelum mengklik ikon shutdown atau restart.
Sistem yang digunakan adalah laptop Asus X550DP.
sudo shutdown -h now
dan melihat apakah itu mati penuh.