根据 launchd 规范,当使用 StartCalendarInterval 选项时:“与在计算机睡眠时跳过作业调用的 cron 不同,launchd 将在计算机下次唤醒时启动作业。”
但是如果我希望它跳过调用怎么办?IE。有没有办法让 launchd 在这方面表现得像 cron ?
我正在尝试使用此命令加载我的守护程序应用程序
launchctl load /Library/LaunchDaemons/myPlistFileName
Run Code Online (Sandbox Code Playgroud)
它工作正常,但仅当我的用户登录系统时。
如何加载我的守护程序应用程序,该应用程序将在没有任何用户登录系统的情况下保持加载状态(如 Windows 服务)?
命令
sudo launchctl load /Library/LaunchDaemons/myPlistFileName
Run Code Online (Sandbox Code Playgroud)
给我一个错误 ->没有找到加载
这样做的正确方法是什么?
从昨天早上开始,我的 iTunes 副本一直在随机启动和停止。如果 iTunes 未运行,则它会打开,有时会开始播放,有时会闲置。最终,在一段随机间隔后,它会开始播放一首歌,然后停止,等等......不用说,它让我发疯。
(Mac OSX,10.6.3,在新的(< 1 岁)24" iMac 上)
我对我的系统进行了五项更改,这些更改可能与此相关,也可能不相关:
我的办公室电话被 Linksys IP 电话取代,这需要改变我的网络;以前我的 Mac 是直接连接到办公室网络端口的,现在它是通过电话连接的。
我的网络连接现在使用自动链接检测代替强制 100Mbit
我取消了蓝牙耳机的配对。
我移除了与另一个耳机关联的 USB 音频设备。
我升级到 Safari 5。我不将它用作主要浏览器,但它通常可以运行我正在开发的 Web 应用程序。
所有这些事情都发生在彼此非常接近的地方,因此其中一个或多个可能是罪魁祸首。
另一件可能相关或不相关的事情;出于某种原因,我的内置麦克风不再接收音频。看起来这可能与 iTunes 问题有关,因为它发生在大约同一时间。
就我为解决这个问题而尝试的事情而言,我有点不知所措。我按照http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html#SECLAUNCHDLOGGING上的说明启用详细的 launchd 日志记录,以查看是否可以找到要求 iTunes 打开的进程(当它尚未打开)但我无法对输出进行正面或反面。老实说,我什至不确定我是否找对了地方。它实际上就像是在使用 AppleScript 激活应用程序一样,但据我所知,我没有正在运行的进程正在执行此操作。
我正在运行一些与 iTunes 集成的应用程序:Adium、iChat with Chax、Quicksilver。这些最近都没有改变,所以我认为它们导致这种情况的风险很低,但这并非不可能。此外,我没有故意使用这些功能中的任何一个。
这是 launchd 刚刚启动时的调试日志记录片段:
10-06-09 9:14:29 AM com.apple.launchd[1] Dispatching kevent...
10-06-09 9:14:29 AM com.apple.launchd[1] KEVENT[0]: udata = 0x10002b230 data = 0x30 ident = 5 filter = EVFILT_READ flags = EV_ADD|EV_RECEIPT fflags = 0x0
10-06-09 …Run Code Online (Sandbox Code Playgroud) 我发现我的 Mac 的 syslogd“Cosole”日志变得无法使用,当一些写得不好的应用程序(在这种情况下是PathFinder.app)整天不断地涌入 syslogd 时......
创建别名到可执行束内的应用“包”,然后只启动该别名从终端。过程是...浏览到/Applications/ObnoxiousLogger.app,右键单击,“显示包内容”,然后浏览到...
/Applications/ObnoxiousLogger.app/Contents/MacOS/ObnoxiousLogger
然后您通过 GUI 创建别名并记住始终从该别名启动应用程序,再次仅通过终端。
这很烦人,因为您必须通过 Finder 创建别名(符号链接不起作用,并且无法通过终端创建别名)。如果它以任何其他方式启动,你又回到了原点,口误......这种方法确实有效,但时间很短。
似乎您可以通过launchctl命令或 plist 变量来设置它,但这不是由 launchd 打开的应用程序,而且 launchd 的文档无处不在,但我想这是一种可能性,我认为。
我看到了一些关于将日志发送到 /dev/null 的内容,但不清楚这是某种 syslogd 管道、命令、/etc/syslogd.conf 设置,还是什么......
请让我知道您是否有一种可靠的方法来选择性地使每个应用程序的日志记录静音,或者更好的是,增加或减少 Mac OS X 中每个进程/命令等的日志记录详细程度。
我记得前段时间,我卸载了一个名为 starfield 的应用程序,但可能我没有进行干净的卸载。现在在控制台中,我总是看到一条烦人的消息:
com.apple.launchd[1] (com.starfield.backupservice[4441]) 退出,退出代码:1
com.apple.launchd[1] (com.starfield.backupservice) 节流重生:将在 10 秒后启动
com.apple .launchd[1] (com.starfield.backupservice[4442])
posix_spawn("/Applications/Starfield/BackupService/offSyncService", ...): 没有那个文件或目录
我知道我的安装可能有问题,我现在如何彻底卸载,或者只是解决这个问题,我不想再从我的控制台看到这条消息。谢谢。
在某些时候,我曾尝试在 Mac OS 10.6 上安装和使用“SCPlugin”,但发现它不是我需要的。
根据安装文档,它说要从这些位置删除 .plugin 文件:
/Library/Contextual Menu Items/SCFinderPlugin.plugin/Library/Receipts/SCPlugin.pkg/Applications/SCToolbarButton/usr/local/bin/svn (如果您安装了可选链接)但是卸载几个月后,我仍然看到我的控制台报告错误:
com.apple.launchd.peruser.501[93] (org.tigris.scplugin.launch[29882]) Exited with exit code: 1
com.apple.launchd.peruser.501[93] (org.tigris.scplugin.launch) Throttling respawn: Will start in 10 seconds
com.apple.launchd.peruser.501[93] (org.tigris.scplugin.launch[29883]) posix_spawn("/Library/Contextual Menu Items/SCFinderPlugin.plugin/Contents/Resources/SCPluginUIDaemon.app/Contents/MacOS/SCPluginUIDaemon", ...): No such file or directory
com.apple.launchd.peruser.501[93] (org.tigris.scplugin.launch[29883]) Exited with exit code: 1
Run Code Online (Sandbox Code Playgroud)
我对 scplugin 进行了系统范围的搜索,但没有任何报告。如何确保 launchd 不会尝试启动插件?
我在运行 OS X 10.6.x 的 Mac 上,我看到以下launchd错误消息不断重复Console.app:
如何停止此错误消息?
3/3/12 3:35:03.002 PM com.apple.launchd.peruser.503: (com.hp.help.tocgenerator) 节流重生:将在 10 秒后开始
我已经阅读了 plist 和 launchd.plist 的手册页,以及有关使用 plist 文件在登录时运行脚本的帖子;但我似乎可以让事情运转起来。
我的脚本位置和权限:
sshfs_mounts.sh:
ls -al Library/scripts/
-rwxr-xr-x 1 jason staff 288 May 10 17:06 sshfs_mounts.sh
Run Code Online (Sandbox Code Playgroud)
cat Library/scripts/sshfs_mounts.sh
#!/bin/bash
#
## automounting of sshfs directories
mount_cosmic ()
{
/usr/local/bin/sshfs jason@iss.nasa.gov:/media/NetworkShare/spacedock-1 /Users/jason/share;
}
mount |grep "/Users/jason/share/"
if [ $? == 1 ] && [ -d "/Users/jason/share" ] && [ $USER == "jason" ]; then
mount_cosmic
fi
Run Code Online (Sandbox Code Playgroud)
从原始帖子编辑:
如果我手动运行脚本,它会按预期执行。我可以加载 plist ( launchctl load ~/Library/LaunchAgents/local.sshfs.plist) 并启动它 ( launchctl start ~/Library/LaunchAgents/local.sshfs),但它不运行脚本。在日志 ( cat /var/log/system.log |grep local.sshfs …
在 OS X 上使用 launchd,我可以使用 CLI 中的 launchctl 使命令/程序在启动时运行,例如:将在启动时
launchctl submit -l someName touch /usr/local/someFile
创建。someFile/usr/local
我怎样才能在 Windows 上实现这一目标?我可以做什么来cmd让 Windows 在启动时运行某些命令?
我想在某个用户登录时运行一些命令。
如何设置 ftpd 在我的计算机重新启动时运行以及如何为端口 5021 打开它?Mac OS X 10.7 Lion 不再有用于打开 ftp 服务器的复选框。
我正在尝试在 OS X Lion Server 上设置YouTrack并使用launchd. 我已经下载了 YouTrack jar 文件,我可以使用java -Xmx512m -jar youtrack.jar 8080. 我还将上述运行命令包装在一个类似于此的 shell 脚本中,这基本上让我可以使用youtrack start和与活动实例进行交互youtrack stop。它将进程的进程 id 存储java在一个文件中并退出,以便能够停止正在运行的实例,只允许一个实例等。
为了在启动时运行这个命令,我创建了一个简单的 launchd plist 并将它放在 /Library/LaunchDaemons 中,按照man launchd.plist. 使用的主要键是ProgramArguments( youtrack start) 和RunAtLoad(true)。问题是,当运行表单时,命令行将youtrack start创建一个包含java进程pid 的文件,我可以在top或 中看到这个进程ps ax。但是当命令由 lanuchd ( sudo launchctl load /Library/LaunchDaemons/org.example.youtrack.plist)运行时,生成的 pid 将与任何正在运行的进程的 pid 不匹配,并且 YouTrack Web …