在哪里放置shell脚本?

时间:2010-09-06 12:47:29

标签: macos shell cron crontab

你好电脑的同事们:)

我有一个shell脚本,我将用作看门狗定时器。它会检查我的其他“主要”程序是否正在运行。如果不是,则重新启动它。

问题是:如何在Mac上安装此功能?是否存在文件夹/ p​​list文件场景,操作系统将自动并且定期调用脚本,确保我的程序在没有运行的情况下永远不会那么久?理想情况下,我想每分钟测试一次,但每天每小时甚至几次都会令人满意。

谢谢!

3 个答案:

答案 0 :(得分:4)

在Mac OS X上执行此操作的方法是使用Launch Services。它取代了initcrontab等旧系统服务,并为管理系统服务提供了一个统一的框架。

在您的情况下,您可能不需要单独的脚本 - 保持应用程序运行的实例应由系统处理。首先,您需要创建描述您的守护程序/脚本/应用程序的.plist文件。您可以将其放在以下位置之一,具体取决于服务类型:

  • ~/Library/LaunchAgents:用户提供的每用户代理。
  • /Library/LaunchAgents:管理员提供的每用户代理。
  • /Library/LaunchDaemons:管理员提供的系统范围守护程序。
  • /System/Library/LaunchAgents:Mac OS X每用户代理。
  • /System/Library/LaunchDaemons:Mac OS X系统范围的守护进程。

定义服务后,您可以使用launchctl命令来控制launchd。例如,您可以列出正在运行的服务,启动/停止服务等。

完整的文档在这里:

答案 1 :(得分:2)

我不是Mac用户,但应该有cron守护程序。 http://hints.macworld.com/article.php?story=2001020700163714

答案 2 :(得分:1)

Crontab应该很好。将脚本设置为每X分钟运行一次,cron将完成其余的操作。如果您更喜欢程序的GUI界面,请尝试cronnix