kah*_*kah 2 python linux bots vps systemd
我正在尝试在 VPS 上运行一个机器人,并且我能够创建一个 systemd 服务,以便在服务器因任何原因重新启动时能够自动运行我的 python 代码。该服务已启用,当我检查其状态时,状态显示为活动,journalctl 显示 .py 文件已启动,但这就是我的进度结束的地方。在服务启动的通知后,我没有收到其他输出。当我检查我的 VPS 控制台时,CPU 使用率为 0,这意味着该脚本实际上没有运行。
\n该脚本位于/home/user/projects/ytbot1/bot/main.py并通过手动执行时运行得非常好python3 main.py。
脚本和 .service 文件都被授予 root 和用户的 u+x 权限,并且该服务设置为仅在用户登录时运行(我认为,...我所做的就是设置 User=myusername ytbot1.service)
\n[Unit]\nDescription=reiss YT Bot\n\n[Service]\nUser=reiss\nGroup=reiss\nType=exec\nExecStart=/usr/bin/python3 "/home/reiss/projects/ytbot1/bot/main.py"\nRestart=always\nRestartSec=5\nPrivateTmp=true\nTimeoutSec=900\n\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n这是输出sudo systemctl status ytbot1
\xe2\x97\x8f ytbot1.service - reiss YT Bot\n Loaded: loaded (/etc/systemd/system/ytbot1.service; enabled; vendor preset: enabled)\n Active: active (running) since Mon 2022-05-16 10:34:04 CEST; 9s ago\n Main PID: 7684 (python3)\n Tasks: 1 (limit: 19141)\n Memory: 98.4M\n CGroup: /system.slice/ytbot1.service\n \xe2\x94\x94\xe2\x94\x807684 /usr/bin/python3 /home/reiss/projects/ytbot1/bot/main.py\nRun Code Online (Sandbox Code Playgroud)\n和sudo journalctl -fu ytbot1.service
root@vm1234567:~# journalctl -fu ytbot1.service\n-- Logs begin at Mon 2022-05-16 07:41:00 CEST. --\nMay 16 10:07:18 vm1234567.contaboserver.net systemd[1]: Starting reiss YT Bot...\nMay 16 10:07:18 vm1234567.contaboserver.net systemd[1]: Started reiss YT Bot.\nRun Code Online (Sandbox Code Playgroud)\n一切就到此为止了。日志不会更新或添加新信息。
\n期望的输出:
\n-- Logs begin at Mon 2022-05-16 07:41:00 CEST. --\n May 16 10:07:18 vm1234567.contaboserver.net systemd[1]: Starting reiss YT Bot...\n May 16 10:07:18 vm1234567.contaboserver.net systemd[1]: Started reiss YT Bot.\nHandling GoogleAPI\n2022 5 15 14 38 2\n./APR_2022_V20 MAY_2022_V15.mp4\n DOWNLOADING VIDEOS...\n[...] *Script runs, you get the picture*\nRun Code Online (Sandbox Code Playgroud)\n有什么帮助吗?是否我的 .py 文件位于错误的位置,或者 .service 文件/工作目录有问题?也许我应该使用不同版本的Python?我尝试运行的脚本非常复杂,所以分叉可能是一个问题(代码调用了几个google api,但设置 Type=forking 只是强制服务启动无限加载,然后由于某种原因超时)?我不知道可能...我很感激反馈。谢谢!
\n尝试使用/usr/bin/python3 -u然后使用文件路径。
默认情况下,如果输出是控制台,Python 使用行缓冲,否则使用全缓冲。行缓冲意味着输出被保存直到有完整的行,然后刷新。完全缓冲可以一次缓冲多行。并且 systemd 日志可能不会被检测为控制台。
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |