Jupyterhub无法通过plist运行

时间:2018-07-24 05:51:47

标签: macos http-proxy jupyterhub

我一直在运行 jupyterhub 0.91 。在MacOS Sierra(版本10.12.6)中成功运行,并且可以从连接到此MacOS网络的任何客户端访问笔记本。我试图将 jupyterhub 用作服务。为此,我在 / Users / xyz / Library / LaunchAgents 中创建了 org.xyz.jupyter.plist 文件( xyz 是我的用户ID ),其中包含以下内容(为简洁起见,省略了标准的页眉和页脚信息):

<dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>org.xyz.jupyter</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/xyz/Library/LaunchAgents/jupyterhub.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/Users/Shared/jupyterhub.err</string>
    <key>StandardOutPath</key>
    <string>/Users/Shared/jupyterhub.out</string>
    <key>KeepAlive</key>
    <true/>
</dict>

并且, /Users/xyz/Library/LaunchAgents/jupyterhub.sh 的内容是:

PID=$(pgrep -f jupyterhub)
if [ "x$PID" = "x" ]; then # Ensure only one jupyterhub instance is running
    sudo /opt/anaconda/anaconda3/bin/jupyterhub -f /Users/Shared/jupyterhub_config.py
fi

我独立运行了上述Shell脚本,并且 jupyterhub 开始运行时没有出现任何问题。但是,当我重新启动Mac以自动启动集线器时,出现以下错误(摘录):

  File "/opt/anaconda/anaconda3/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'configurable-http-proxy': 'configurable-http-proxy'

我检查了执行 jupyterhub 的位置 / opt / anaconda / anaconda3 / bin / ,发现文件 configurable-http-proxy >。然后,我将其复制到: /opt/anaconda/anaconda3/lib/python3.6 ,subprocess.py从该位置执行并报告 configurable-http-proxy 的缺失>。但是,错误仍然相同。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

运行用于启动 jupyterhub 的代理时,它似乎对可执行文件的位置一无所知。在这种情况下,它不知道 configurable-http-proxy 所在的位置。因此,我添加了一个 EnvironmentVariables 指令,其中包含上述文件的路径( / opt / anaconda / anaconda3 / bin )。修改后的 plist 文件是:

<dict>
    <key>EnvironmentVariables</key>
    <dict>
      <key>PATH</key>
      <string>/opt/anaconda/anaconda3/bin:/bin:/usr/bin</string>
    </dict>
    <key>Label</key>
    <string>org.xyz.jupyter</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/anaconda/anaconda3/bin/jupyterhub</string>
        <string>-f</string>
        <string>/Users/Shared/jupyterhub_config.py</string>
    </array>

我的问题中显示的其他内容。