Что команда терминала Mac OS X должна выйти из системы текущий пользователь?

Я хотел бы выполнить что-то как "сон 3600; выйдите из системы", но удар выхода из системы управляет, только закрывает текущий терминал. Как я закрыл полный сеанс Mac OS X?

19
задан 12.09.2009, 21:22

2 ответа

Следующий Applescript выйдет из системы текущий пользователь:

tell application "System Events" to log out

Можно обернуть это в псевдониме удара с помощью osascript команда:

alias maclogout="osascript -e 'tell application \"System Events\" to log out'"

Это совпадает с нажатием "> Log out [username]..." и выйдет из системы после 2-минутного ожидания

Это легко объединено с sleep команда:

alias delayedlogout="sleep 3600; maclogout"

.. или мог быть объединен в единственный псевдоним:

alias delayedlogout="sleep 3600; osascript -e 'tell application \"System Events\" to log out'"
22
ответ дан 07.12.2019, 10:16

Нет никакого "хорошего" способа зарегистрировать текущего пользователя из Терминала в OS X. 'Грязный' способ сделать его состоит в том, чтобы уничтожить того пользователя loginwindow процесс. Это грубо уничтожит все процессы (программы), работающие под Вашим именем пользователя.

Выполнение этого является двухступенчатым процессом.

  1. В терминале, выполненном это:

    ps -Ajc | grep loginwindow
    
  2. Затем выполненный

    sudo kill <pid>
    

    Где <pid> первое число (второй столбец) от вывода от вышеупомянутой команды.

sudo использования уничтожают-9 для принуждения, уничтожают процесс, который я должен был сделать, чтобы заставить это работать.

Так, например, когда, если вывод к первой команде:

joshhunt    41     1    41 5e15c08    0 Ss     ??    3:13.09 loginwindow

Затем я работал бы sudo kill 41, введите мой пароль, и затем я выхожусь из системы.

Это может быть объединено в псевдоним удара:

alias messylogout="ps -Ajc | grep loginwindow | grep -v grep | awk '{print \$2}' | sudo xargs kill"
17
ответ дан 07.12.2019, 10:16

Теги

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