Я ищу приложение автоматического выключения, которое принудительно выключит компьютер в назначенное время.
Наиболее важной частью этого является то, что отключение не должно быть отменено (если процесс не является чрезвычайно обременительным).
Я ищу приложение автоматического выключения, которое принудительно выключит компьютер в назначенное время.
Наиболее важной частью этого является то, что отключение не должно быть отменено (если процесс не является чрезвычайно обременительным).
Ответы:
Итак, в дополнение к моему предыдущему ответу, я могу показать вам, как cron (встроенная служба расписания UNIX) запускает для вас запланированную команду завершения работы.
Он будет работать как root и будет принудительно установлен.
sudo crontab -e
Вам нужно будет ввести свой пароль для входа и затем нажать клавишу ввода.
Теперь вы будете в текстовом редакторе (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
.
Это может быть отменено, хотя:
Остановка в 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
где время указывает будущее время в одном из двух форматов: + число или гггддччмм, где год, месяц и день могут быть по умолчанию установлены на текущие системные значения. Первая форма выводит систему из строя в количестве минут, а вторая - в указанное абсолютное время.
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-часового времени)
Если вы хотите безопасно завершить работу Mac в назначенное время, подумайте о Power Manager ; он красиво выключается, не позволяя приложениям блокировать процесс:
Мошенническому приложению или процессу очень трудно заблокировать эти шаги.
shutdown
Использование shutdown
принудительно завершит все процессы на вашем Mac, включая графические приложения. Для многих приложений это агрессивное поведение и не дает приложению много возможностей для сохранения состояния или данных.
Power Manager включает в себя задачу Schedule Assistant для выключения по расписанию .
Раскрытие информации: я работаю с компанией, которая делает Power Manager.
Я бы посмотрел на эту техническую заметку от Apple