systemctl启动工作,但systemctl启用失败realpath()错误

我正在尝试在Vagrant Ubuntu 16.04上设置一个名为project的简单uwsgi服务。 它应该启动一个简单的Flask应用程序,Nginx可以与之交谈。

在运行systemctl start project ,我可以使服务工作,但在systemctl start project启动后无法获取服务。

这是我的project.ini

 [uwsgi] module = wsgi:app master = true processes = 5 socket = /tmp/project.sock uid = ubuntu gid = ubuntu chmod-socket = 666 vacuum = true die-on-term = true logto = /tmp/project.log 

这是我的/etc/systemd/system/project.service

 [Unit] Description=uWSGI instance to serve project After=network.target [Service] User=vagrant Group=vagrant WorkingDirectory=/home/vagrant/flask_trial Environment="PATH=.:/home/vagrant/bin:/home/vagrant/.local/bin:/home/vagrant/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" ExecStart=/home/vagrant/anaconda3/bin/uwsgi --ini /home/vagrant/flask_trial/project.ini [Install] WantedBy=multi-user.target 

启动后运行systemctl status project产生:

 Sep 12 05:26:08 vagrant systemd[1]: Started uWSGI instance to serve project. Sep 12 05:26:09 vagrant systemd[1]: project.service: Main process exited, code=exited, status=1/FAILURE Sep 12 05:26:09 vagrant systemd[1]: project.service: Unit entered failed state. Sep 12 05:26:09 vagrant systemd[1]: project.service: Failed with result 'exit-code'. 

运行journalctl | grep project journalctl | grep project收益率:

 Sep 12 05:26:08 vagrant systemd[1]: Started uWSGI instance to serve project. Sep 12 05:26:09 vagrant uwsgi[1123]: realpath() of /home/vagrant/flask_trial/project.ini failed: No such file or directory [core/utils.c line 3618] Sep 12 05:26:09 vagrant systemd[1]: project.service: Main process exited, code=exited, status=1/FAILURE Sep 12 05:26:09 vagrant systemd[1]: project.service: Unit entered failed state. Sep 12 05:26:09 vagrant systemd[1]: project.service: Failed with result 'exit-code'. 

我怀疑存在两个问题之一:文件权限问题,因为谷歌显示人们经常为了得到这些权利或path而努力,因为realpath()失败。

flask_trial权限是

drwxrwxr-x 1 vagrant vagrant 272 Sep 12 04:50 flask_trial

对于里面的所有文件:

 -rwxrwxr-x 1 vagrant vagrant 185 Sep 11 02:59 main.py -rwxrwxr-x 1 vagrant vagrant 189 Sep 12 04:50 project.ini -rwxrwxr-x 1 vagrant vagrant 70 Sep 11 03:47 wsgi.py 

我启用servicectl enable project ,没有sudo ,所以用户应该是vagrant

可疑的path问题,因为它看起来像uwsgi不能findi project.ini,我试着将ExecStart修改为任何这些:

 ExecStart=/home/vagrant/anaconda3/bin/uwsgi --ini /home/vagrant/flask_trial/project.ini ExecStart=/home/vagrant/anaconda3/bin/uwsgi --ini project.ini ExecStart=/home/vagrant/anaconda3/bin/uwsgi --ini ./project.ini 

上面似乎没有启动工作,虽然所有的工作与systemctl start 。 真的迷失在这里,并会欣赏一些意见。

好的,向他人expression你的问题真的可以帮助你从不同的angular度来看待这个问题。

systemctl在这里没有错。 问题是我的/ flask_trial项目是一个共享的Vagrant文​​件夹,显然是与系统后连接systemctl运行 – 所以systemctl找不到.ini文件。 傻我。

一旦我知道我的问题是什么,我知道要问什么问题,这里有一个很好的解决scheme: https : //serverfault.com/a/838390/435122