Python 3.x 如何在Linux终端上启动服务、运行作业,然后关闭服务?

Python 3.x 如何在Linux终端上启动服务、运行作业,然后关闭服务?,python-3.x,bash,celery,tmux,keyboardinterrupt,Python 3.x,Bash,Celery,Tmux,Keyboardinterrupt,作为一名Linux和Bash noob,如果问题太基本或缺少一些关键信息,请道歉 基本上,我使用python芹菜库(使用redis代理)逐块并行处理一些海量的json文件 现在,我实现这一目标的方法是(如果有更好的方法,请告诉我) 1号航站楼 2号航站楼 在终端2中完成任务后,我通过Ctrl+C向终端1发送一个键盘中断,工作进程关闭 但是,我如何在终端中运行一个bash脚本来完成整个任务,即启动celery\u worker服务,运行python脚本,然后关闭worker 作为肮脏的工作环境,我

作为一名
Linux
和Bash noob,如果问题太基本或缺少一些关键信息,请道歉

基本上,我使用
python芹菜库
(使用redis代理)逐块并行处理一些海量的
json
文件

现在,我实现这一目标的方法是(如果有更好的方法,请告诉我)

1号航站楼 2号航站楼 在终端2中完成任务后,我通过Ctrl+C向终端1发送一个键盘中断,工作进程关闭

但是,我如何在终端中运行一个bash脚本来完成整个任务,即启动
celery\u worker
服务,运行python脚本,然后关闭worker

作为肮脏的工作环境,我可以让worker运行
24*7
,而无需关闭worker,只要在需要服务时使用python脚本即可。但我相信这会浪费记忆,芹菜工人有一种恼人的倾向,他们会在一段时间后自行关闭


我还需要将整个过程添加到日常cron作业中。

如果我没有弄错的话,终端2依赖于终端1。好的,那么您可以先编写一个Bash脚本。如果辅助进程未运行,则继续执行下一步。如果工人正在运行,则直接进入下一步

上面的下一步包括运行Python脚本

完成后,获取它的PID(进程id),并杀死它。这不是最干净的方法,但它与您现在使用Ctrl+C所做的操作相对应


有关设置cronjobs的信息,请查看。

谢谢,但是在不中断键盘的情况下关闭芹菜工人的干净方法是什么?我知道,杀戮听起来像是一种不礼貌的退出,但是当进程等待任务队列时,我如何能留下一张干净的板子呢?干净的方法是找出如何访问芹菜工人中的某个退出命令(如果有)。这听起来很有希望:如果芹菜工人构建正确,那么Ctrl+C实际上没有什么问题。当工人在做某事和“只留下他的工作未完成”时,可能会出现问题,从而保持资源的开放或半处理。判断您的用例,我相信这在您的用例中不是问题。
$celery worker -A celery_worker -l info -c 64 #To start the celery worker service which listens for input
$./pythonScript.py arg1 arg2 #Script to call the service