Следующий 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'"
Нет никакого "хорошего" способа зарегистрировать текущего пользователя из Терминала в OS X. 'Грязный' способ сделать его состоит в том, чтобы уничтожить того пользователя loginwindow
процесс. Это грубо уничтожит все процессы (программы), работающие под Вашим именем пользователя.
Выполнение этого является двухступенчатым процессом.
В терминале, выполненном это:
ps -Ajc | grep loginwindow
Затем выполненный
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"