我正在尝试在GitLab上做一个CI脚本,它连接到我的VPS,Git Pull,然后运行python脚本并退出,同时让我的python脚本24/7运行(直到下一个管道运行/提交)。
我怎样才能让我的python脚本全天候运行呢?
script:
- 'apt-get update -y && apt-get install openssh-client -y && apt-get install sshpass -y '
- sshpass -p "password" ssh -o StrictHostKeyChecking=no root@host "cd repo/ && git pull && python3 main.py"
这是我当前的脚本,但是,当运行main.py
时,管道处于不确定状态,因为脚本是永久运行的。
如何使管道脚本运行脚本并退出,将其保留在tmux
或类似的位置?
1条答案
按热度按时间snz8szmq1#
首先检查这是否是tty分配问题,如in here。
还可以考虑只调用一个脚本(执行
cd
、git pull
和python3
)这样,您就可以在本地(在“host”上)测试脚本,然后远程调用它(通过
ssh
)从OP Kevin A.的注解中:
我的代码每隔45分钟左右就会循环运行一次,所以脚本一直在运行。这是一个不断更新云数据库的网页抓取器。
这个想法是让GitLab CI忽略等待脚本完成运行,它只是,停止以前的脚本运行,git拉并再次运行脚本
另一种方法是使脚本一次性废弃(并退出),但通过GitLab scheduled pipeline调用所述脚本。
这样就不会再结冰了。