MacOS 设置定时任务

香蕉你个不呐呐
2024-01-20 / 0 评论 / 7 阅读 / 正在检测是否收录...

在 macOS 上,你可以使用 launchd 来设置定时任务。下面是设置定时任务的一般步骤:

1. 创建脚本:

首先,创建一个包含你要执行的任务的脚本文件。确保脚本有执行权限。

# 例如,创建一个简单的 Bash 脚本
echo "#!/bin/bash" > /path/to/your/script.sh
echo "echo 'Hello, World!'" >> /path/to/your/script.sh
chmod +x /path/to/your/script.sh

2. 创建 Property List (plist) 文件

创建一个 Property List 文件,该文件描述了你的定时任务。你可以使用文本编辑器创建一个 plist 文件。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.mytask</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/script.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StartInterval</key>
    <integer>60</integer>
</dict>
</plist>

在上面的例子中,Label 是任务的唯一标识符,ProgramArguments 包含要执行的脚本的路径,RunAtLoad 表示在加载时运行,StartInterval 表示定时任务的间隔时间(以秒为单位,这里是60秒)。

3. 保存 plist 文件:

将 plist 文件保存到 ~/Library/LaunchAgents/ 目录中,命名为 com.example.mytask.plist(你可以自定义文件名,但确保文件名以 .plist 结尾)。

4. 加载定时任务:

执行以下命令加载定时任务。

launchctl load ~/Library/LaunchAgents/com.example.mytask.plist

这将立即启动任务,并在以后的每个间隔时间运行它。

5. 检查任务是否在运行

你可以使用 launchctl list 命令检查任务是否在运行。

launchctl list | grep com.example.mytask

如果看到输出,则任务正在运行。

这是一个简单的例子,你可以根据需要调整 plist 文件中的参数,以适应你的实际需求。请注意,如果你修改了 plist 文件,你需要重新加载任务。

请记得在使用 launchd 设置定时任务时,确保你的脚本和任务的配置是正确的,以避免不必要的问题。

补充

plist文件分布在:

/System/Library/LaunchDaemons # 是用户未登陆前就启动的服务(守护进程)
/System/Library/LaunchAgents  # 由Mac OS X为用户定义的任务项
/Library/LaunchDaemons        # 由管理员定义的守护进程任务项
/Library/LaunchAgents         # 由管理员为用户定义的任务项
~/Library/LaunchAgents        # 由用户自己定义的任务项

显示当前的启动脚本,status等于0就正常,等于正数,比如78,就是错误。

launchctl list

开机时自动启动 php-fpm, -w 是立即启动的意思

sudo launchctl load -w /Library/LaunchAgents/org.php.php-fpm.plist

停止正在运行的启动脚本

sudo launchctl unload [path/to/script]

再加上-w选项即可去除开机启动

sudo launchctl unload -w [path/to/script]
0

评论

博主关闭了所有页面的评论