Как выключить компьютер после завершения задачи?

Обычно я начинаю загрузку перед тем, как пойти в школу.
Какую команду использовать, чтобы автоматически сделать необходимые сохранения и выключить компьютер после выполнения определенной задачи?
(Скажите, после установки обновлений или после загрузки большого файла.)

Я также опубликовал это на unix.stackexchange .

8
задан 13 April 2017 в 15:37

9 ответов

Чтобы сделать один раз, чтобы выключить аппарат без пароля:

Откройте командную строку и введите:

sudo visudo 

В открывшемся файле добавьте следующую строку в конец:

yourusername ALL=NOPASSWD: /sbin/halt

Затем выйдите из редактора и сохраните его ( Ctrl + X ).

Теперь вы можете выключить компьютер из командной строки, например, после загрузки чего-либо:

wget UrlOfTheFileYouWantToDownload && sudo halt
0
ответ дан 13 April 2017 в 15:37

Для завершения работу после обновления, можно использовать этот сценарий Python: http://kotbcorp.blogspot.com/2009/06/shutdown-after-update-in-ubuntu.html

Для завершения работу после загрузки, я использую эту команду:

wget http://somehwere.com/path/to/some.file && halt
3
ответ дан 13 April 2017 в 15:37

Другие ответы верны, но чего-то не хватает:

wget UrlOfTheFileYouWantToDownload ; sudo halt

против

wget UrlOfTheFileYouWantToDownload && sudo halt

Второй ответ только выключит компьютер, если wget возвращается успешно. Первый из них будет остановлен независимо от того, вернется ли wget успешно или нет.

0
ответ дан 13 April 2017 в 15:37

вы можете использовать менеджеры загрузок или торрент-клиенты, чтобы завершить работу ПК после завершения или предположить, что вы дефрагментируете диск, который вы можете нажать, чтобы завершить работу после завершения, что доступно в большинстве программ.

0
ответ дан 13 April 2017 в 15:37

Я думаю, это во многом зависит от того, как вы загрузили.

Если вы говорите об обновлении apt-get, обновите последовательность, когда вы будете суперпользователем root, соберите свои команды вместе, используя & amp; & amp; (последовательность продолжается, только если ошибок не было)

sudo su -
apt-get update && apt-get upgrade && shutdown -h now

Если вы говорите о загрузке (например, с помощью wget) [еще раз, объедините команды вместе, используя & amp; & amp; запись, гарантирующая, что команды выполняются по порядку, только если предыдущая команда была успешной]

sudo su -
wget -t0 -c http://somedownloadsite/path/file.foo && shutdown -h now

Если ваша загрузка была выполнена графическим клиентом (графическим интерфейсом), то это будет зависеть от механизмов этого клиента для выполнения сценариев после успешной загрузки.

0
ответ дан 13 April 2017 в 15:37

Лично я обнаружил, что было проще использовать gedit для настройки оригинала

yourusername ALL=NOPASSWD: /sbin/halt    

, так как sudo visudo сбивал меня с толку и не показывал последнюю строку четко

. использовал

sudo -H gedit /etc/sudoers

, затем закончил с чистой (для меня) страницей

# User privilege specification
root    ALL=(ALL:ALL) ALL


# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d
shantiq ALL=NOPASSWD: /sbin/halt

Просто подумал, что упомяну, что в случае, если кто-то еще тоже будет немного смущен

0
ответ дан 13 April 2017 в 15:37

Вместо изменения разрешений на завершение работы вы могли бы сделать следующее:

sudo bash -c 'apt-get update; apt-get dist-upgrade; shutdown -h now'

Для этого нужно запустить приглашение bash от имени пользователя root, который выполняет элементы в единственном списке в кавычках и затем завершает работу. Преимуществом этого метода является то, что Ubuntu забудет вашу первоначальную sudo аутентификацию через некоторое время (в зависимости от установленного периода времени ожидания - 15 минут по умолчанию), и кто-то, сталкиваясь с вашей машиной, может только остановить текущую команду, но не запустить новую. , Кроме того, для всех, кто говорит об использовании su, попробуйте:

sudo -s
0
ответ дан 13 April 2017 в 15:37

Я не думаю, что вы можете сделать это ... Нет способа узнать, когда конкретное приложение завершило свою работу.

Раньше я делал sudo su; sleep 3600; halt;

0
ответ дан 13 April 2017 в 15:37

Я знаю, что это не совсем отвечает на ваш вопрос, но вы также можете сделать его основанным на времени, т.е. если вы думаете, что ваша загрузка завершится через 2 часа, вы можете просто выполнить команду:

shutdown -h +120
0
ответ дан 13 April 2017 в 15:37

Другие вопросы по тегам:

Похожие вопросы: