我在 Mac OS X 上创建了一个 /etc/crontab 文件,该文件运行一些简单的命令。我想使用 crontab 在终端中回显一条语句,从操作系统注销(就好像我将鼠标指向命令 Logout),并且我尝试通过每两分钟运行一次回显语句来测试它。这是我到目前为止所拥有的:
55 12 * * * echo "Don't forget to log out!! Will be automatically logging out at 12PM Sharpe!!"
* 13 * * * logout
1 * * * * echo "Test"
那时,我曾经crontab /etc/crontab
确保我的用户指向 crontab 文件(确实如此),并且能够通过键入 .. 来确认它crontab -l
。我需要做什么才能使其在我的终端中回显并且它真的每天中午12点退出操作系统吗?
答案1
如果实际意图是强制系统的活动用户在每天 1300 点注销,请在root
用户的 crontab 中尝试以下操作:
0 13 * * * osascript -e 'tell app "System Events" to log out'
如果您不希望向用户显示确认对话框,您可以使用:
0 13 * * * osascript -e 'tell app "System Events" to «event aevtrlgo»'
答案2
cron 表条目是跑步。它们不在您的活动终端上运行;他们自己跑。如果您的主机正在运行本地邮件守护程序,您可以看到 cron 作业的输出,这些作业echo
在本地邮件守护程序发送到您的本地帐户的电子邮件中具有输出(例如作业)。
答案3
一段时间以来,在 OS X 中使用cron
已被强烈反对,现在有利于他们的“更好”选项,称为launchd
.有很多关于如何运行作业的教程,launchd
但这里只是为了帮助您入门。
http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs