Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(OSX)启动CTL不允许Python停止_Python_Macos_Osx Lion_Launchd - Fatal编程技术网

(OSX)启动CTL不允许Python停止

(OSX)启动CTL不允许Python停止,python,macos,osx-lion,launchd,Python,Macos,Osx Lion,Launchd,我在Lion(10.7.3)上使用launchctl在系统启动时在2个不同端口上加载2个SickBeard实例(一个python脚本) 我在~/Library/LaunchAgents中的列表如下 <?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"&g

我在Lion(10.7.3)上使用launchctl在系统启动时在2个不同端口上加载2个SickBeard实例(一个python脚本)

我在~/Library/LaunchAgents中的列表如下

<?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.sickbeard.sickbeard</string>
  <key>ProgramArguments</key>
  <array>
       <string>/Library/Frameworks/Python.framework/Versions/2.7/bin/python</string>
       <string>/Users/james/Applications/Sick-Beard/SickBeard.py</string>
       <string>-q</string>
       <string>-d</string>
  </array>

  <key>StandardOutPath</key>
  <string>/var/log/sickbeard/sickbeard.log</string>
  <key>StandardErrorPath</key>
  <string>/var/log/sickbeard/sickbeard_error.log</string>

  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
我遇到的问题是,尽管“launchctl start com.sickbeard.sickbeard”可以启动该过程,但“launchctl stop com.sickbeard.sickbeard”并不能阻止它。 如果我尝试从GUI启动自动更新,则会失败,提示我查看日志。 日志在适当的时间戳包括以下内容

Mar-24 20:15:25 DEBUG    CP Server Thread-4 :: After checking, cur_commit = a392367b16b197ca59a5017f5ecfb37ade2f26f4, newest_commit = a392367b16b197ca59a5017f5ecfb37ade2f26f4, num_commits_behind = 0
Mar-24 20:15:25 DEBUG    CP Server Thread-4 :: newest: a392367b16b197ca59a5017f5ecfb37ade2f26f4 and current: a392367b16b197ca59a5017f5ecfb37ade2f26f4 and num_commits: 0
AA
Mar-24 20:15:22 DEBUG    CP Server Thread-4 :: Git output: a392367b16b197ca59a5017f5ecfb37ade2f26f4
AA
Mar-24 20:15:22 DEBUG    CP Server Thread-4 :: git output: a392367b16b197ca59a5017f5ecfb37ade2f26f4
Mar-24 20:15:22 DEBUG    CP Server Thread-4 :: Executing "/usr/local/git/bin/git" rev-parse HEAD with your shell in /Users/james/Applications/Sick-Beard
Git确实位于/usr/local/bin/Git中。 奇怪的是,我不记得改变了任何可能导致这个问题的东西——以前有人遇到过这个问题吗? 我已经浏览了这些论坛上所有的launchctl线程,并尝试了对plists等的所有个性化小更改,但没有一个真正起到任何作用

在我未经训练的眼中,python似乎正在从父进程中妖魔化自己,因此当启动请求时停止它的权限就超出了它的权限

您的帮助和想法将不胜感激! 如果我错过了任何有用的进一步信息,请务必让我知道


:)

这并不是完全的daemonization,但是标准python OS X框架构建中的
bin/python
可执行文件实际上是一个启动程序,它执行位于框架中应用程序包中的真正python可执行文件:

$ /usr/local/bin/python2.7 -c 'import sys; print(sys.executable)'
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

通过更改launchctl plist以直接执行该可执行文件,您可能可以获得所需的行为。

感谢您的努力。我更改了两个plist,包括新的二进制文件、卸载、重新加载、停止和启动,但不幸的是python仍然没有停止。如果有帮助的话,活动监视器的前几行将指向python实例的下面几行/Users/james/Applications/Sick Beard/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/pythos/Library/Library/Frameworks/2.7/python2.7/lib-dynload/itertools.so抱歉,这没有帮助。通过快速查看代码的源代码,我看到了一些关于重新启动代码的引用。不知道这对launchd有多好。祝你好运
$ /usr/local/bin/python2.7 -c 'import sys; print(sys.executable)'
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python