Grz*_*icz 21 mac command-line macos
我想运行类似“sleep 3600; logout”的东西,但 logout bash 命令只关闭当前终端。如何关闭完整的 Mac OS X 会话?
dbr*_*dbr 22
以下 Applescript 将注销当前用户:
tell application "System Events" to log out
Run Code Online (Sandbox Code Playgroud)
您可以使用以下osascript
命令将其包装在 bash 别名中:
alias maclogout="osascript -e 'tell application \"System Events\" to log out'"
Run Code Online (Sandbox Code Playgroud)
与点击“?>注销[用户名]...”相同,等待2分钟后注销
这很容易与sleep
命令结合使用:
alias delayedlogout="sleep 3600; maclogout"
Run Code Online (Sandbox Code Playgroud)
..or 可以组合成一个别名:
alias delayedlogout="sleep 3600; osascript -e 'tell application \"System Events\" to log out'"
Run Code Online (Sandbox Code Playgroud)
Jos*_*unt 19
没有“好的”方法可以将当前用户从 OS X 中的终端注销。这样做的“混乱”方法是终止该用户的loginwindow
进程。它会粗暴地杀死以您的用户名运行的所有进程(程序)。
这样做是一个两步过程。
在终端中,运行这个:
ps -Ajc | grep loginwindow
Run Code Online (Sandbox Code Playgroud)然后,运行
sudo kill <pid>
Run Code Online (Sandbox Code Playgroud)
<pid>
上面命令的输出中的第一个数字(第二列)在哪里。
使用 sudo kill -9 强制终止我必须执行的进程才能使其正常工作。
例如,如果第一个命令的输出是:
joshhunt 41 1 41 5e15c08 0 Ss ?? 3:13.09 loginwindow
Run Code Online (Sandbox Code Playgroud)
然后我会运行sudo kill 41
,输入我的密码,然后我就退出了。
这可以组合成一个 bash 别名:
alias messylogout="ps -Ajc | grep loginwindow | grep -v grep | awk '{print \$2}' | sudo xargs kill"
Run Code Online (Sandbox Code Playgroud)