Bagaimana saya mengetahui mengapa Menangguhkan terkadang gagal?

17

Sesuatu menyebabkan crash sementara. Saat macet, sistem macet dengan layar hitam dan tetap menyala, tidak ditangguhkan. Ini membuat saya harus menahan tombol power hingga sistem dimatikan.

Satu perbedaan pengaturan yang saya miliki dari kebanyakan orang adalah, saya tidak menggunakan opsi yang memungkinkan Anda menangguhkan ketika tutup laptop ditutup. Jadi membuka dan menutup tutup laptop tidak ada tindakan. Saya suka menekan menangguhkan secara manual. Mungkinkah perubahan preferensi ini menjadi penyebabnya?

Bagaimana saya bisa mulai mencari penyebab crash, karena crash tidak menampilkan kesalahan?

Ishak
sumber

Jawaban:

17

Saya tidak berpikir bahwa pengaturan yang Anda sebutkan ada hubungannya dengan itu.

Periksa /var/log/pm-suspend.logdan lihat apakah ada petunjuk.

Masalah-masalah ini biasanya karena beberapa proses menghentikan sistem dari ditangguhkan.

Melakukan

dmesg -T|grep Freez -A4

dan cari entri ini:

--
[sun mar  3 15:19:48 2013] Freezing user space processes ... 
[sun mar  3 15:20:08 2013] Freezing of tasks failed after 20.01 seconds (3 tasks refusing to freeze, wq_busy=0):
[sun mar  3 15:20:08 2013] mount.nfs       D e8631aa0     0  5518   5517 0x00800004
[sun mar  3 15:20:08 2013]  e8631b10 00000086 f7bc0e00 e8631aa0 c1053cb4 c1809020 c192ee00 c192ee00
--

Periksa stempel waktu untuk melihat masalah yang dilaporkan terkait dengan percobaan Anda untuk menangguhkan. Dalam hal ini, mount.nfsyang menyebabkan masalah.

Sekarang, letakkan skrip /etc/pm/sleep.d/, skrip di sana akan berjalan pada menangguhkan dan melanjutkan. Nama file harus dimulai dengan nomor pemesanan, 00-49 untuk skrip pengguna (untuk detail lebih lanjut, lihat man pm-suspend).

Scriptnya bisa seperti ini

#!/bin/sh
(killall -9 mount.nfs; exit 0)

dengan entri correpsonding untuk proses lain yang menyebabkan masalah, jika ada.

Parenthesis dan exit 0merupakan trik: jika proses tidak ditemukan, killallakan keluar dengan kode keluar 1, yang akan membatalkan seluruh penangguhan. Di atas akan berjalan killalldalam sub-shell yang akan keluar dengan 0.

Jika Anda mengalami masalah, periksa /var/log/pm-suspend.logyang akan mencatat upaya untuk menangguhkan dan menjalankan skrip Anda.

Carl
sumber
Saya juga membutuhkan baris lain: (killall -9 mount.nfs; exit 0) karena terkadang tidak bekerja dengan SIGUP saja.
Juanin
@Juanin: -9lebih baik, saya tidak tahu mengapa saya hanya -1di tempat pertama, diedit sekarang.
Carl
Saya ingin tahu berapa persen dari waktu masalahnya adalah pemasangan jaringan langsung (seperti yang ditunjukkan di sini). Itu juga masalah saya - tapi itu sshfsbukan nfs.
Nobar
Jika ada lebih dari satu tugas yang menolak untuk dibekukan, hal itu mungkin terkait dengan bug ini: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1676912
mhellmeier
Apakah metode ini juga berfungsi di Ubuntu 18.04 .. ??
Ramesh-X