launchd

如何安排脚本即使 Mac 处于睡眠状态也自动运行?
launchd

如何安排脚本即使 Mac 处于睡眠状态也自动运行?

我对此确实很苦恼。 基本上,我希望每 3 小时在我的 Mac 上运行一次 Python 脚本。即使我不在使用 Mac。因此,即使 Mac 处于睡眠状态,我也希望它能够被唤醒并运行脚本。 我的攻击方法如下: 我下载了一个名为“scenario”的第三方应用程序,它会在 Mac 唤醒时运行脚本。 我已经在场景中放置了一个将调用 Python 文件的 Apple 脚本。 Python 文件运行我需要它运行的几个命令,然后设置pmset wake up call当前时间后 3 小时的计划。 现在整个系统很笨重,而且是拼凑起来的。说实话,它工作得不太好,因为...

Admin

launchd 无法访问外部驱动器
launchd

launchd 无法访问外部驱动器

我正在尝试自动执行一个脚本来备份我的 Mac mini(macOS 11.4)上的几个目录。我想要备份的一些文件存储在安装到 /Volumes/SHASTA 的外部驱动器上。我编写了一个快速启动脚本,只是为了看看它是否可以访问该目录,但它似乎出错了。以下是我写的内容: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dt...

Admin

如何查找并删除没有 .plist 的 LaunchAgent
launchd

如何查找并删除没有 .plist 的 LaunchAgent

我的 macOS (v11.2.1) 有许多不需要的 LaunchAgent 随系统一起加载,导致系统臃肿。其中一些我能够成功删除(只需找到它们的 .plist)。但是,对于其他一些,我无法简单地识别它们在启动过程中的加载方式,因为它们没有可识别的 .plist。 这篇文章专门针对 VoxAgent(由 Vox 音乐播放器推出,www.vox.rocks),但这种烦恼也发生在其他应用程序中(CleanMyMac X,Hazel......) 我可以使用 终止该服务launchctl remove com.coppertino.VOXAgent,但每次系统启动...

Admin

如何在mac上安排py程序每60分钟运行一次(在特定文件夹下)
launchd

如何在mac上安排py程序每60分钟运行一次(在特定文件夹下)

我是 Python 新手,我编写了我的第一个程序,并在一天中运行几次。该文件名为 quran_review_scheduler.py,位于我的用户目录“usr/dev/python/learning_python”下的文件夹中。当我想运行此文件时,我打开终端并将目录更改为 learning_python 并运行 python3 quran_review_scheduler.py,它运行良好。现在我想让这个脚本每小时运行一次。 我做了一些研究并发现 launchd - 我读过的 2 个教程是: https://nathangrigg.com/2012/07...

Admin

如何在 MacOS Catalina 启动时运行命令?
launchd

如何在 MacOS Catalina 启动时运行命令?

我已经在 Mac 上安装了 SoftEther VPNMacOS Catalina在我手动启动它之后,它运行良好。但是重新启动后 VPN 不会出现。 我目前必须打开一个终端窗口并输入命令./下载/vpnserver/vpnserver 启动 我不太喜欢把它放在文件夹中下载。 我应该将它移到哪里?我已作为用户登录。 如何让它在 Mac 启动时自动启动? ...

Admin

MacOS:在 USB 启动之前使用 Launchctl 启动虚拟机
launchd

MacOS:在 USB 启动之前使用 Launchctl 启动虚拟机

我在 /Library/LaunchDaemons 中有一个 plist 文件,它启动了一个无头且装有 Ubuntu 的虚拟机。 但问题是 USB 可能在 VM 启动之前尚未初始化,因此位于 COM 端口 /dev/ttyACM0(在 VM 上)的 USB 记忆棒不可用。 运行正常启动时“VBoxManage showvminfo userver”的输出: Currently Attached USB Devices: UUID:                 ...

Admin

尝试在运行时扩展 launchdaemon 的参数
launchd

尝试在运行时扩展 launchdaemon 的参数

我每天都会在中午启动一个 shell 脚本。我尝试将前一天的日期作为该脚本的参数传入启动守护进程的 .plist 中,但根据 stdout 和 stderr 日志,它无法运行。 我现在在 zshell 中手动运行我的脚本(并且运行良好):./my_script.sh --optionone $(date -v -1d +"%m/%d/%y") --optiontwo <key>ProgramArguments</key> <array> <string>/Users/kanejm/scripts/m...

Admin

MacOS Mojave - LaunchAgent plist 并非对所有用户运行
launchd

MacOS Mojave - LaunchAgent plist 并非对所有用户运行

我有一个 plist,放在 /Library/LaunchAgents 中,旨在为所有用户运行启动 Parallels 的脚本。(由于我运行的是网络用户环境,因此我无法简单地将其设置为启动项。)launchd 如下: <?xml version="1.0" encodings="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1....

Admin

睡眠后 launchd 脚本不再运行
launchd

睡眠后 launchd 脚本不再运行

只要我的计算机不进入睡眠状态,我的 launchd 配置中指定的脚本就可以正常工作(每 10 秒运行一次)。一旦进入睡眠状态,我必须重新加载 launchd 配置。这是我的配置: <?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"> <dic...

Admin

在 Shell 脚本中,查找会因“参数过多”而失败,但如果直接在终端中运行则不会失败
launchd

在 Shell 脚本中,查找会因“参数过多”而失败,但如果直接在终端中运行则不会失败

我有一个工作站,用于临时存储图像,然后将压缩版本上传到服务器进行安全保存。我有兴趣每天凌晨 3 点使用通过 launchd 安排的脚本删除旧文件一次。 #!/bin/bash find /some/directory/with/pictures/* -exec rm -rf {} \+ 我已经验证了它可以在仅具有大约 250 mb 图像(30 张图像)的开发工作站上运行。 由于生产工作站尚未运行此脚本,因此它们很多图像的大小约为几百 GB。这意味着当find通过 shell 脚本执行时,它会停止并显示“参数太多”。 我花了很多时间试图找出原因(尝试...

Admin

如何使用 launchd 在 MacOS 上安排“docker-compose”的运行
launchd

如何使用 launchd 在 MacOS 上安排“docker-compose”的运行

我正在用构建一些软件docker-compose,我想按计划运行它。 因此,我需要在 MacOS (High Sierra,10.13.3) 上安排运行docker-compose up,使用启动。这是我正在使用的 LaunchAgent 配置。 <?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"> &l...

Admin

在 macOS(OSX)上删除 Apache httpd 中的构建
launchd

在 macOS(OSX)上删除 Apache httpd 中的构建

我有一台 Mac Mini,在家里运行私人服务器。它运行的是 macos High Sierra (osx),之前使用过“Apple Server”来管理我的网站(使用内置的 apache httpd)。但由于 Apple 决定大幅削减 Apple Server 的功能,让它对我来说毫无用处,因此我不得不寻找其他解决方案。 我在网上搜索如何摆脱 httpd 中的构建。所有指南都只是说停止 apache 并为 launchd 卸载它。这很好用,直到重新启动,apache 中的构建又回来了。有些东西正在将其重新加载到 launchd 中。尽管我已禁用它,“co...

Admin

Python 脚本/Unix 可执行文件在终端中运行,作为 Cron/Launchd 作业失败
launchd

Python 脚本/Unix 可执行文件在终端中运行,作为 Cron/Launchd 作业失败

我正在尝试配置 launchd 来触发 python 脚本/unix 可执行文件(即带有舍邦线)。当我加载 .plist 文件(如下)时,launchctl显示状态 127,表示“指定的服务未随操作系统一起提供”。但是,当我将 .plist 文件中为“程序”输入的值复制并粘贴到 mac 终端中时,它运行正常。 我已将 stdout/stderr 重定向到终端(通过 .plist),它返回以下消息, $ env: python3: 没有此文件或目录 Program如果我将plist 中的值替换为一个简单的“hello world”批处理脚本,它就...

Admin

LaunchDaemon 脚本未发送邮件
launchd

LaunchDaemon 脚本未发送邮件

在我的 macOS 10.13 系统上,我有一个 bash 脚本作为 LaunchDaemon(位于 /Library/LaunchDaemons)每分钟启动一次,以检查 Ubuntu 虚拟机是否正在 VMware Fusion 中运行。(如果发生断电或其他情况,我必须以自己的身份登录才能让虚拟机再次运行。)我已将 Postfix 设置为中继到我的电子邮件提供商。我的脚本在前台进程中运行时工作正常,无论是作为我的普通用户还是 root 用户,都可以根据需要向我发送电子邮件或不发送电子邮件,但是当由 launchd 运行时,它不会向我发送邮件。我跟踪了 /va...

Admin

如何让 launchd 脚本创建带有时间戳的文件?
launchd

如何让 launchd 脚本创建带有时间戳的文件?

我正在尝试运行一个简单的 launchd 脚本,当文件更改时,该脚本会将文件从一个目录复制到另一个目录,但我想使用唯一的时间戳粘贴它,以便对文件进行版本控制。我的 launchd 脚本如下所示: <?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"> &...

Admin