Bagaimana cara menonaktifkan shutdown sehingga proses penting tidak dapat terganggu?


10

Apa cara paling sederhana untuk menonaktifkan atau menunda sementara reboot / shutdown ketika proses penting sedang berjalan? Proses ini memakan waktu terlalu lama untuk diselesaikan dan tidak dapat dijeda / dilanjutkan, jadi saya ingin menghindari mematikan pc saat sedang berjalan. Itu dijalankan dari cron jadi kecuali saya secara manual memeriksa proses yang berjalan, saya tidak akan tahu bahwa itu sedang berjalan. Terima kasih.


5
Kemungkinan duplikat: SO: Untuk sementara waktu mencegah linux dimatikan , petunjuk jawaban pada berbagai tingkat yang dapat dilakukan, yaitu skrip shell atau manajemen daya lingkungan desktop.
sr_

Saya tidak berpikir bahwa jawaban itu cukup spesifik tanpa penjelasan runlevel atau tautan ke penjelasan. Itu tidak ada dalam U&L SE. Bolehkah saya bertanya distro dan versi mana yang Anda gunakan?
bsd

Alih-alih memodifikasi prosedur penutupan, tulis pembungkus sehingga tugas menunjukkan selesai, baik mengirimkan atau menyentuh file. Tes untuk penyelesaian pekerjaan, lalu jalankan shutdown. (cron mengirimkan hasil pekerjaannya ke pemilik, tetapi itu bisa di-tweak).
bsd

Jawaban:


1

Jalankan which shutdownuntuk melihat di mana jalan menuju program shutdown. Anda dapat mengganti nama file, meskipun saya sarankan untuk tidak melakukannya.

Metode lain (lebih aman). Gunakan alias: alias shutdown=' ' Sesuatu seperti ini lebih reversibel. Jika Anda mencoba mencegah shutdown dari semua pengguna, tambahkan alias secara global.


Saya sedang berpikir untuk menggunakan alias, sekarang saya hanya perlu menulis skrip saya. Terima kasih!
zang3tsu

Bagaimana dengan perintah lain seperti stop atau poweroff. Apakah Anda perlu membuat alias '/ mengganti nama juga?
mintyfreshpenguin

17

Untuk sistem yang lebih baru dengan systemd ini telah diselesaikan oleh systemd-inhibit. Contoh penggunaan:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

Kemudian, jika pengguna mencoba untuk mematikannya tidak akan diizinkan kecuali dipaksa.

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

Namun ada masalah ini: menjalankannya sebagai root secara non-interaktif akan mengabaikan kunci. github.com/systemd/systemd/issues/2680
Alicia

Saya pikir Anda salah membaca laporan bug itu, mereka berbicara tentang menjalankan poweroffsebagai root non-interaktif
Ferrybig

Bagaimana saya salah membaca laporan bug? : S
Alicia

2

Nonaktifkan "shutdown / reboot / poweroff / halt / hostname" seperti perintah di server kritis misi

chmod 0 /sbin/shutdown

maka jika Anda perlu menggunakannya, chmod kembali ke chmod 0755.


1
Bagaimana halt, poweroffdan systemctl poweroff?
Martin Ueding

1

Saya akan menonaktifkan perintah di file / etc / sudoers sehingga hanya root yang bisa menjalankannya.

di / etc / sudoers

# Cmnd alias specification
Cmnd_Alias     SHUTDOWN = /sbin/shutdown

# User privilege specification
root    ALL=(ALL:ALL) ALL
vmule   ALL=(ALL:ALL) ALL, !SHUTDOWN

dan ketika saya mencoba menjalankan perintah:

vmule@debian:~$ sudo /sbin/shutdown  -r now
Sorry, user vmule is not allowed to execute '/sbin/shutdown -r now' as root on debian.vm

dapatkah Anda menguraikan jawaban Anda? shutdown mungkin tidak secara eksplisit ditentukan di / etc / sudoers.
Archemar

Tentu, saya mengedit jawabannya dengan penjelasan yang lebih baik. Cheers
vmule

0

Saya ingin mencegah pengguna lokal mematikan laptop selama peningkatan. Menonaktifkan perangkat input adalah cara terbaik. Bagi saya itu sudah cukup untuk menonaktifkan mouse, tetapi keyboard dapat dinonaktifkan juga.

Tentu saja ada kekurangannya, komputer tidak dapat digunakan selama periode ini.

Nonaktifkan input Keyboard & Mouse di unix (di bawah X)


-1

shutdownsecara teknis aplikasi juga, yang dapat Anda hapus. Lari which shutdown. whichadalah perintah yang menunjukkan jalan aplikasi. Dalam kasus saya hasilnya adalah /sbin/shutdown. Ini file sehingga Anda bisa melakukannya rm shutdown. Atau jika Anda ingin menonaktifkannya untuk sementara, salin nama dan hapus file aslinya.

Anda harus memiliki izin yang memadai jika ingin melakukannya rm shutdown. Ini hanya baca, karena itu mengapa Anda mungkin mendapatkan kesalahan. Coba hapus sebagai rootatau jika perlu coba gunakan perintah rm shutdown.


3
Kenapa -rbenderanya? Anda tidak memerlukannya untuk satu file, dan jika Anda salah ketik, bencana akan terjadi.
MadTux
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.