Яка різниця між відключенням 18:00 та 18:00 відключенням?


30

at 18:00 shutdown nowі shutdown 18:00, вони починають ту саму послугу? Чи працюють вони однаково?

Відповіді:


48

at 18:00 shutdown nowстворює завдання "at", яке виконується у визначений час atдемоном або, можливо, cronдемоном, залежно від вашої системи.

shutdown 18:00запускає процес у вашій оболонці, який чекає вказаного часу, а потім виконує відключення. Ця команда може бути припинена, якщо, наприклад, ваш сеанс оболонки припинено.

Чистий результат у більшості випадків буде однаковим: система вимикається о 18:00.

Одна відмінність полягає в тому, що якщо ви використовуєте at, завдання буде зберігатися, і якщо система буде відключена якимось іншим способом до 18:00, після повторного завантаження робота все ще буде чекати запуску; якщо час уже минув, відключення буде здійснено негайно, що може бути зовсім несподіваним.

Ще одна відмінність полягає в тому, що shutdown 18:00ви створите /run/nologinфайл за 5 хвилин до запланованого часу, щоб люди не входили після цього моменту. Також будуть надсилатися широкомовні повідомлення, щоб попередити користувачів, які увійшли до системи, що система збирається вимкнутись.

Потрібно врахувати ці відмінності, щоб вирішити, що використовувати.


1
" shutdown 18:00запускає процес у вашій оболонці, який чекає". Що робити, якщо ви вийдете раніше?
RonJohn

1
@RonJohn: Тоді це залежить , якщо ви використовували nohupабо disownабо що - то, якщо виходити з системи зазвичай вбиваєш працюєте фонові процеси. Для цього різні системи можуть мати різні за замовчуванням. (Я припускаю, що насправді sudo shutdownпроцес все ще працює, скоріше він просто сигналізує initпро запуск таймера відключення. Останнім може бути те, що відбувається, але останнім часом я не перевіряв це. О, але @JdeBP має; )
Пітер Кордес

Чи дійсно можливо налаштувати atтак, щоб він працював через, cronа не atd?
тердон

3
Є модератор алмазів, який не читав Як запитувати . (-: Ви дізнаєтесь, що це запитання було задано чотири роки тому на unix.stackexchange.com/questions/147643 .
JdeBP

"Також будуть надіслані широкомовні повідомлення, щоб попередити користувачів, які увійшли до системи, що система збирається закрити." Я б сказав, що це найважливіша відмінність серверів, у яких багато користувачів, я б більше виділив це у цій відповіді.
JiK

23

А тепер системна відповідь.

Якщо у вас CentOS 7, у вас є системна операційна система, і відповідь відрізняється.

at 18:00 shutdown nowвсе ще розклади через atпідсистему, але ця shutdownкоманда, як і та, з якою ви безпосередньо звертаєтесь shutdown 18:00, відрізняється. Це насправді systemctlпрограма systemd . systemctlвсе робить інакше.

Перш за все, systemctlвідправляє запланований запит на вимкнення, щоб його обробляти dæmon, майже як у atвипадку. Це, зокрема, системний dæmon logind( systemd-shutdownddæmon був вилучений з systemd у травні 2015 року, яка зміна проникла через більш пізні незначні версії CentOS 7), а не atпідсистема. systemctlповідомляє внутрішній протокол до брокера настільних автобусів (на всій системі), з яким спілкується logind.

Таким чином, як і у atвипадку, там немає жодного shutdownпроцесу, який відраховує та нерестує wallповідомлення. Таким чином, можна вийти, і це не вплине на графік, а скасування не є таким простим, як просто переривання / вбивство переднього плану сеансу входу. Так само, як і з at.

Ще є повідомлення, на відміну від atвипадку, але вони видаються logind. Також на відміну від atвипадку, заплановане завдання не зберігається під час перезавантаження системи, тому фактичне відключення скасовує заплановане. У файловій системі є файл, але він знаходиться під /run/systemd/shutdownяким нестабільне зберігання.

Подальші відмінності полягають у тому, що одночасно може бути лише одне заплановане відключення, тоді як можна подавати кілька atзавдань, і Policy Kit застосовуватиме правила для shutdownзапуску в контексті сеансу без входу як atзавдання, яке відрізняється від правил, застосованих для shutdownзапуску в контекст сеансу входу. Останні можуть бути більш дозволеними, дозволяючи (скажімо) непривілейованому користувачеві, який увійшов до активного сеансу входу, щоб вимкнути систему.

Подальше читання

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.