如何解决即使具有正确的绝对路径,Systemd服务也无法找到用户文件
我有一个烧瓶应用程序,该应用程序具有以下包含app.py
的{{1}}文件:
flask_apscheduler
现在,我想使用from flask_apscheduler import APScheduler
app = Flask(__name__)
scheduler = APScheduler()
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:postgres@localhost/mydb'
db = SQLAlchemy(app)
#my sqlAlchemy models:
class RiskCountry(db.Model):
id = ...
@app.route('/')
def dataToDb():
#scrape data from website and update database
...
if __name__ == '__main__':
scheduler.add_job(id = 'test',func = dataToDb,trigger = 'interval',minutes = 60)
scheduler.start()
app.run()
将此脚本作为服务运行。我在systemd
中创建了以下myservice.service
文件:
/etc/systemd/system
现在我进入控制台并完成
[Unit]
Description=scraping data and push to DB
After=network.target network-online.target
Requires=network-online.target
[Service]
ExecStart="/home/geolic/my-app/env/bin/python /home/geolic/my-app/app.py"
Restart=always
WorkingDirectory=/home/geolic/my-app
User=root
Group=root
[Install]
WantedBy=multi-user.target
但是,我的服务无法运行并显示错误消息:
已加载:已加载(/etc/systemd/system/myservice.service;已启用;供应商预设:已禁用)
活动:自CEST 2020-08-19 07:50:57 CEST起失败(结果:开始限制); 6秒前进程:21863
ExecStart = / home / geolic / my-app / env / bin / python /home/geolic/my-app/app.py(代码=已退出,状态= 203 / EXEC)
主PID:21863(代码=已退出,状态= 203 / EXEC)
我在做什么错了?
编辑
好。我发现$ systemctl enable myservice
$ systemctl daemon-reload
$ systemctl start myservice
$ systemctl status myservice -l
无法执行systemd
中使用的文件。但是,在我的控制台中运行该语句时,它应能正常工作...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。