Автоматичне відключення у визначений час?


18

Я знаю, що я можу використовувати (sudo?) shutdown -h hh:mmУ термінальному вікні, щоб вимкнути систему, однак користувач, який увійшов у систему, є користувачем кіоску, який закривається таким чином, що термінал (або будь-яке вікно, крім firefox , з цього питання) неможливо відкрити.

Моє запитання:
чи є спосіб я це зробити, не відкриваючи вікно терміналу? Я читав про cron, але не можу його цілком виправити.
Як я можу змінити час вимкнення залежно від того, який саме день?


Ви хочете зупинити роботу в 02:00?
αғsnιη

Ні, вибачте, саме це було використано у прикладі, який я прочитав. Зазвичай о 11:30, але мені було цікаво, чи є спосіб вказати різний час для різних днів?
Містер Екслі

1
Ви можете направити URL для автоматичного відключення. askubuntu.com/questions/19774/…
vembutech

1
@vembutech Це питання для відключення після певного період часу пройшло - не вимикаючи в певний час - однак , хоча це було б легко прийняти це до моїх потреб, я до сих пір не можу працювати , крім світлячок додаткових вікон. Дякую за вашу відповідь! Це здається набагато простішим, ніж використовувати cron, і я, швидше за все, буду використовувати його для інших цілей :)
MrAxlee

@MrAxlee ... Отже, ви хочете, щоб система вимкнулася через n годин після включення?
Каз Вулф

Відповіді:


31

Cron буде дуже добре працювати для цього.

Додайте нижній рядок (з переправками) до кінця /etc/crontab:

30 23 * * * root shutdown -h now

О 23:30 (23:30) кіоск вимкнеться. Незалежно від того, який користувач увійшов, команда вимкнення працює як root.

(Якщо ви не хочете використовувати глобальний crontab, увійдіть як root і використовуйте crontab -e. Використовуйте той самий вище синтаксис без the root).


Формат Cron:

MM HH DD OO WW command

MM: Хвилина, 0-59
HH: 24-годинна година
DD: День місяця
OO: Місяць
WW: День тижня (неділя - 0, понеділок - 1)
command: Роз'яснення


@JacobVlijm Коли це було додано? Я не бачу цього в офіційних документах Cron .
Каз Вулф

1
Я перегляну ...
Яків Влійм

1
від crontab (5): Формат системного crontab, / etc / crontab включає стовпець "хто", який не існує в crontab користувачів. У системному crontab cron виконує команду, як вказано користувачем у цьому стовпці. У користувацькому crontab всі команди виконуються як користувач, який створив crontab.
Яків Влійм

@Whaaaaaat Чудова відповідь, прекрасно працює, дякую !. Яка різниця між -hі -s?
MrAxlee

1
@MrAxlee, -sздається, не є "правильним синтаксисом". -hозначає зупинити або вимкнути систему (вибір системи - переважне відключення)
Kaz Wolfe

6

Cronjob здається найкращим способом, тому що ви можете вказати різний час для різних днів. У системах на базі Gnome ви можете просто встановити графіки завдань GNOME за допомогою

sudo apt-get install gnome-schedule

а потім налаштувати cronjob за допомогою GUI.

інакше вам доведеться скористатися, sudo crontab -eа потім додати наступні рядки

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

це призведе до відключення ПК о 11:30 з понеділка по п’ятницю та 10:30 у суботу та неділю. Структура дуже проста:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

Для отримання додаткової інформації про це ви також можете просто ознайомитись із CronHowto


2
Мені довелося спеціально використовувати /sbin/shutdownзамість того, shutdownщо мій кореневий крон PATH відрізнявся, ніж у терміналі, який я спробував у своєму сценарії.
Яакко

3

Ми можемо зупинити автоматично в заданий час, просто запустивши команду sudo poweroffв crontab.

Якщо ви хочете вимкнути систему щодня о 18:30. Введіть термінал:

sudo crontab -e

редагувати

30 18 * * * poweroff

@mrm Існують альтернативні методи, для вирішення конкретного питання і відповідей може бути багато різних варіантів. Це не відповідь корисна чи ні? Будь ласка, я прошу вас не брати участь у відповіді чи питанні, якщо вам це не зрозуміло. Читайте запитання належним чином і подивіться, чи відповідь стосується цього конкретного питання чи ні. Якщо у вас все ще виникає дилема, ви можете запитати у Ask Ubuntu Meta або тут, а потім прийміть рішення.
ромашка

В одному рядку crontab у вас є два питання: poweroffпропускає скрипти закриття, які можуть бути важливими для, скажімо, безпечного вимкнення вашої бази даних чи будь-чого іншого, і у вас sudoє коренева крона, яка не потрібна. Ви також не зверталися до того, як посилатися на різні дні тижня як на запитання. Так ні, це не альтернативний метод. Як це, це дві помилки та упущення. Два інші відповіді, зроблені за рік до вашого, є правильними і насправді працюють.
мр

@mrm Ну, я використовую цей сценарій останні три роки, і я не бачив жодної проблеми. І так це альтернативний, а також правильний корисний метод. Que - автоматичне відключення у визначений час. Існує команда на відключення, і для автоматичного визначеного часу ми можемо використовувати crontab відповідно до наших вимог. Для вас було б краще, якщо ви задасте інше питання щодо своєї проблеми.
ромашка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.