Я ищу приложение для автоматического выключения, которое принудительно выключит компьютер в назначенное время.
Наиболее важной частью этого является то, что выключение нельзя отменить (если только процесс не является чрезвычайно обременительным).
Итак, в дополнение к моему предыдущему ответу я могу помочь вам заставить cron (встроенную службу расписания UNIX) запустить для вас запланированную команду завершения работы.
Он будет работать как root и будет принудительно.
sudo crontab -e
Вам нужно будет ввести пароль для входа в систему, а затем нажать Enter.
Теперь вы будете в текстовом редакторе (vim). Внимательно введите следующие нажатия клавиш.
Допустим, вы хотите, чтобы машина выключалась в 2 часа ночи каждый день, теперь мы должны ввести:
* 2 * * * /sbin/shutdown -h now
Если вы хотите, чтобы машина выключалась каждый день в 2:30, вы должны ввести:
30 2 * * * /sbin/shutdown -h now
Теперь вы должны вернуться в командную строку, с которой вы начали.
Готово!
sudo
? Я знаю, что это, вероятно, приведет к зависанию, но я почти уверен, что вы должны быть root, чтобы запустить shutdown
.shutdown
находится в /sbin
котором, вероятно, нет в $ PATH по умолчанию для cron. Чтобы исправить это, сделайте sudo crontab -e
это еще раз, введите dd
удалить строку (при условии, что файл выглядит так же, как тот, который вы указали выше) и повторно введите строку как 30 22 * * * /sbin/shutdown -h now
.sudo crontab -e
) и удалите добавленную вами строку выключения, затем сохраните.Однако его можно отменить:
Остановка в yymmddhhmm
:
shutdown -h 1109211555
Остановка через 4 минуты:
shutdown -h +4
/Library/LaunchAgents/me.lri.forceshutdown.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>me.lri.forceshutdown</string>
<key>ProgramArguments</key>
<array>
<string>shutdown</string>
<string>-h</string>
<string>now</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
Если бы plist принадлежал обычному пользователю, попытка загрузить его привела бы к ошибке launchctl: Dubious ownership on file (skipping)
:
sudo chown root /Library/LaunchAgents/me.lri.forceshutdown.plist
Агент можно загрузить, выйдя из системы и снова войдя, или с помощью:
sudo launchctl load /Library/LaunchAgents/me.lri.forceshutdown.plist
sudo crontab -e
`08 16 * * * /sbin/shutdown -h now`
Это выполнит обычное непринудительное отключение:
osascript -e 'tell app "System Events" to shut down'
Это можно запланировать в Системных настройках > Экономия энергии > Расписание . Я не уверен, что это инициирует принудительное отключение, вам нужно попробовать. Но это встроенная опция для автоматизации запланированного отключения/включения питания.
Вы также можете принудительно завершить работу системы с помощью терминальной команды (требуется root):
выключить -h сейчас
Вы можете поместить эту команду в запланированную задачу launchd или cron . Ознакомьтесь с этой статьей для получения дополнительной информации об этих двух услугах.
Вы также можете проверить приложение, такое как метко названное iWannaSleep (не уверен, что это приведет к отключению).
Вы можете shutdown
напрямую запланировать отключение в любое время в будущем:
shutdown -h time
где время указывает будущее время в одном из двух форматов: +число или ггммддччмм, где год, месяц и день могут быть по умолчанию равны текущим системным значениям. Первая форма останавливает систему в минутах, а вторая — в указанное абсолютное время.
Если вы хотите безопасно выключить свой Mac в запланированное время, рассмотрите Power Manager ; он прекрасно закрывается, не позволяя приложениям блокировать процесс:
Мошенническому приложению или процессу очень сложно заблокировать эти шаги.
shutdown
Использование shutdown
заставит закрыть все процессы на вашем Mac, включая графические приложения. Для многих приложений это агрессивное поведение, которое не дает приложению особых возможностей для сохранения состояния или данных.
Power Manager включает задачу Schedule Assistant для выключения по расписанию .
Раскрытие информации: я работаю с компанией, которая производит Power Manager.
cd ~/Downloads/
curl --remote-name http://dl.dropbox.com/u/18414/ase/com.tjluoma.forceshutdown.plist
# см. примечание ниже
sudo mv com.tjluoma.forceshutdown.plist /Library/LaunchAgents
sudo chown root:wheel /Library/LaunchAgents/com.tjluoma.forceshutdown.plist
sudo launchctl load /Library/LaunchAgents/com.tjluoma.forceshutdown.plist
Как написано, plist заставит компьютер выключаться в 23:00 (по местному времени) каждый день.
Если вы хотите изменить время, отредактируйте скрипт в любом текстовом редакторе. Измените клавиши часов и минут, как показано здесь:
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
(обратите внимание на использование 24-часового времени)
Я бы взглянул на эту техническую заметку Apple
Ти Джей Луома
Бенвигги
Гарри
Гарри
Матеус Рибейро
Грэм Милн
Гарри
Матеус Рибейро