tensorflow gpu从systemd服务失败init

时间:2017-11-22 07:51:08

标签: python flask gunicorn systemd tensorflow-gpu

我试图托管使用tensorflow库的flask API。我使用CUDA和cudnn库安装了tensorflow gpu库。我使用以下命令手动检查,该工具运行正常。

/captcha/env/bin/gunicorn captcha:app -b 0.0.0.0:5124 -k gevent --worker-connections 1000

但是当我添加这个systemd服务时我得到一个tensorflow gpu错误

systemd服务

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
PIDFile=/run/gunicorn/pid
User=root
Group=root
WorkingDirectory=/captcha/env
ExecStart=/captcha/env/bin/gunicorn captcha:app -b 0.0.0.0:5124 -k gevent --worker-connections 1000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

日志文件中的错误文本:

  

无法加载本机TensorFlow运行时。

     

请参阅   https://www.tensorflow.org/install/install_sources#common_installation_problems

     

出于一些常见原因和解决方案。包括整个堆栈跟踪   请求帮助时出现此错误消息。

有人能指出我在哪里做错了吗?

2 个答案:

答案 0 :(得分:0)

我正在使用PM2来管理tensorflow-flask api进程。

http://pm2.keymetrics.io/

我使用以下命令创建一个shell文件作为内容。

pm2 start run.sh

答案 1 :(得分:0)

Systemd似乎剥离了所有环境变量,并且TensorFlow需要知道在哪里可以找到Cuda。没有LD_LIBRARY_PATH,它将失败。

可能有几种方法可以做到这一点,但这对我有用。

[Service]
Environment=LD_LIBRARY_PATH=/usr/local/cuda/lib64
ExecStart=/path/to/your/app
...