at 18:00 shutdown now
dan shutdown 18:00
, apakah mereka memulai layanan yang sama? Apakah mereka bekerja dengan cara yang sama?
at 18:00 shutdown now
menciptakan pekerjaan "at", yang dilakukan pada waktu yang ditentukan oleh at
daemon atau mungkin cron
daemon, tergantung pada sistem Anda.
shutdown 18:00
memulai proses di shell Anda yang menunggu hingga waktu yang ditentukan dan kemudian melakukan shutdown. Perintah ini dapat dihentikan jika mis. Sesi shell Anda dihentikan.
Hasil akhirnya dalam banyak kasus akan sama: sistem dimatikan pada pukul 18:00.
Satu perbedaan adalah bahwa jika Anda menggunakan at
, pekerjaan itu akan disimpan dan jika sistem dimatikan dengan cara lain sebelum pukul 18:00, setelah boot lagi pekerjaan itu masih menunggu untuk dijalankan; jika waktu telah berlalu, shutdown akan dilakukan segera yang bisa sangat tak terduga.
Perbedaan lainnya adalah shutdown 18:00
membuat /run/nologin
file 5 menit sebelum waktu yang dijadwalkan untuk mencegah orang masuk setelah momen itu. Pesan siaran juga akan dikirim untuk memperingatkan pengguna yang masuk bahwa sistem akan dimatikan.
Anda perlu memperhitungkan perbedaan-perbedaan ini untuk memutuskan mana yang akan digunakan.
shutdown 18:00
memulai proses di shell Anda yang menunggu". Bagaimana jika Anda logout sebelumnya?nohup
ataudisown
atau apa pun, jika logout biasanya membunuh proses latar belakang yang berjalan . Sistem yang berbeda dapat memiliki standar yang berbeda untuk itu. (Saya berasumsi bahwa benar-benar adasudo shutdown
proses yang masih berjalan, alih-alih hanya memberi sinyalinit
untuk memulai penghentian waktu. Yang terakhir mungkin sebenarnya yang terjadi, tetapi saya belum memeriksa baru-baru ini. Oh, tetapi @JdeBP telah; lihat jawaban itu )at
agar berfungsi melaluicron
bukanatd
?Dan sekarang, jawaban systemd.
Jika Anda memiliki CentOS 7, Anda memiliki sistem operasi systemd dan jawabannya berbeda.
at 18:00 shutdown now
masih menjadwalkan melaluiat
subsistem, tetapishutdown
perintah itu, serta yang Anda panggil secara langsungshutdown 18:00
, berbeda. Ini sebenarnyasystemctl
program systemd .systemctl
melakukan berbagai hal secara berbeda.Pertama-tama,
systemctl
mengirim permintaan penutupan yang dijadwalkan untuk diproses oleh demon, cukup banyak seperti dalamat
kasus ini. Ini adalah systemd dasmon, meskipun, khususnyalogind
(systemd-shutdownd
dasmon telah dihapus dari systemd pada Mei 2015, yang sejak itu berubah meresap ke versi minor kemudian dari CentOS 7), bukanat
subsistem.systemctl
berbicara protokol internal ke broker Desktop Bus (seluruh sistem) yang kemudian berkomunikasi dengannyalogind
.Jadi, seperti dalam
at
kasus ini, tidak adashutdown
proses duduk di sana menghitung mundur dan menelurkanwall
pesan. Jadi seseorang dapat logout dan ini tidak akan mempengaruhi jadwal, dan pembatalan tidak sesederhana hanya mengganggu / membunuh proses latar depan sesi login. Sama seperti denganat
.Masih ada pesan, tidak seperti dalam
at
kasus ini, tetapi mereka dikeluarkan olehlogind
. Juga tidak sepertiat
kasing, pekerjaan terjadwal tidak bertahan di seluruh sistem restart, sehingga shutdown yang sebenarnya membatalkan yang dijadwalkan. Ada adalah sebuah file di filesystem, tetapi di bawah/run/systemd/shutdown
yang merupakan penyimpanan non-persistent.Perbedaan lebih lanjut adalah bahwa hanya ada satu shutdown terjadwal pada suatu waktu, sedangkan satu dapat mengirimkan beberapa
at
pekerjaan, dan Kit Kebijakan akan menerapkan aturan untukshutdown
berjalan dalam konteks sesi non-login sebagaiat
pekerjaan yang berbeda dengan aturan yang diterapkan untukshutdown
dijalankan di konteks sesi masuk. Yang terakhir mungkin lebih permisif, yang memungkinkan (katakanlah) unprivileged pengguna yang login ke sesi login aktif untuk mematikan sistem.Bacaan lebih lanjut
sumber