Скрипт для выключения Mac - PullRequest
1 голос
/ 06 апреля 2011

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

Спасибо

ОК,

Это appleScriptКод, который я использую для выключения может Mac.Я добавил его как событие iCal, которое проходит каждую ночь.

tell application "System Events" to set the visible of every process to true

set white_list to {"Finder"}

try
    tell application "Finder"
        set process_list to the name of every process whose visible is true
    end tell
    repeat with i from 1 to (number of items in process_list)
        set this_process to item i of the process_list
        if this_process is not in white_list then
            do shell script "killall \"" & this_process & "\""
        end if
    end repeat
on error
    tell the current application to display dialog "An error has occurred!" & return & "This script will now quit" buttons {"Quit"} default button 1 with icon 0
end try



tell application "System Events"
    shut down
end tell

Ответы [ 4 ]

6 голосов
/ 06 апреля 2011

Не могли бы вы попробовать простой яблочный скрипт, который выглядит примерно так ...

tell application "System Events"
shut down
end tell

Посмотрите, работает ли он, и затем вы можете запустить его через Automator в определенное время и т. Д.

3 голосов
/ 21 ноября 2012

моё решение (немного поздно).Просто bash-скрипт с яблоком в нем:

<code>
#!/bin/bash
# OK, just shutdown all ... applications after n minutes
sudo shutdown -h +2 &
# Try normal shutdown in the meantime
osascript -e 'tell application "System Events" to shut down'

Я также отредактировал файл (ы) / etc / sudoers (и / private / etc / sudoers) и добавилстрока: ALL = NOPASSWD: / sbin / shutdown

Всегда работал для меня для гарантированного отключения (тук-тук ;-))

1 голос
/ 06 апреля 2011

Это должно сделать:

do shell script "shutdown" with administrator privileges

Если вы хотите передать пароль администратора из цепочки ключей без запроса:

do shell script "shutdown" with administrator privileges password "password here"

Но не храните пароль администратора в открытом видев любом месте.Вместо этого используйте доступ к цепочке ключей.


В качестве альтернативы вы можете уничтожить все пользовательские процессы, используя:

do shell script "kill -9 -1"

Однако это также приведет к уничтожению вашего собственного процесса Applescript, не позволяя ему запрашивать завершение работы/ перезапустите позже.

В любом случае вы играете с огнем, когда используете sudo или kill.

0 голосов
/ 15 ноября 2014

делать то, что делают пользователи Linux . использовать скрипт bash. Если вы не знаете, как его создать, просто скачайте ЛЮБОЙ скрипт bash, найдите его с помощью поиска в Интернете, откройте его с помощью приложения для редактирования текста и вставьте следующее:
(будьте осторожны, если многие люди используют компьютер, тогда этот метод не рекомендуется, потому что они могут узнать ваш пароль для входа пользователя из этого скрипта)

#!/bin/bash

echo -n "Enter a number > "
read x
echo [your password] | sudo -S shutdown -h +$x

это будет работать так же, как и в Linux. терминал выдаст сообщение и попросит вас ввести номер. если мы выберем для примера 50, то ПК (niresh) или Mac выключится через 50 минут.

...