TL; DR:有没有办法在我的机器启动时禁用Pow服务器启动,但是当我需要它运行时,是否能够通过powder up
手动启动服务器?< /强>
我正在使用Pow进行本地开发(并通过Powder gem进行管理)。我想设置Pow,以便服务器在启动时不会自动启动,因为运行它会耗尽我的电池寿命,而且我并不总是编码。
Pow已将自己添加到launchd
,我似乎无法进入启动后Pow服务器未运行的情况,但仍可通过powder up
或其他等效命令运行当我需要启动服务器时。
我尝试过但没有奏效:
cx.pow.powd
为launchctl unload -w ~/Library/LaunchAgents/cx.pow.powd
进程设置已禁用的密钥可阻止Pow在启动时启动,但也会阻止在我需要时手动启动进程RunAtLoad
设置为NO
也不起作用,后来意识到这不是用于控制守护程序的启动行为。答案 0 :(得分:3)
忘了发布答案我最终搞清楚了。
事实证明这实际上非常简单,并且在Lunchy(launchctl的友好包装器)和快速点击混叠的帮助下非常简单。有点hacky并且我不太了解launchctl,但是这样做了。
步骤(假设已经安装了Lunchy和Pow):
lunchy stop -w pow
:这将停止Pow,并在launchctl中将服务标记为已禁用,因此当计算机启动时Pow将不会加载。 (这与我最初尝试该问题的净效果相同。).bash_profile
(或.profile
等)中设置别名以强制启动服务。 =&GT; alias pu='lunchy start -F pow'
当您重新启动计算机时,应停止Pow,并且应该启动pu
(或您的别名)。您可以通过运行lunchy status
来查看之前/之后运行的服务列表。
这也是一种hacky但有效的方法,可以启动/停止开发所需的服务组,但不一定要在其余时间运行(mongo,redis等)。
答案 1 :(得分:0)
将KeepAlive
与PathState
密钥一起使用。
PathState <dictionary of booleans>
Each key in this dictionary is a file-system path. If the value of the key is true, then the job
will be kept alive as long as the path exists. If false, the job will be kept alive in the
inverse condition. The intent of this feature is that two or more jobs may create semaphores in
the file-system namespace.
当您要启动pow服务器时,在路径上创建文件。
答案 2 :(得分:0)
我最近遇到了这个问题并通过简单地将cx.pow.powd.plist
移动到另一个文件夹来解决了这个问题,该文件夹成功禁用了Pow服务器的自动启动。当我想再次启动时,我只需将cx.pow.powd.plist
移回~/Library/LaunchAgents/cx.pow.powd
并运行powder up
。