本文共 1194 字,大约阅读时间需要 3 分钟。
#!/bin/bash 这一行脚本的作用是指定要使用的shell解释器。在 shell 脚本中,这行叫做“shebang”或“hashbang”。它告诉操作系统在运行脚本时使用哪种解释器执行该脚本,这里使用的是 /bin/bash,通常是默认的 Bourne Again Shell 解释器路径。
LOG_DIR="./logs" mkdir -p $LOG_DIR 这行代码用来创建一个名为 LOG_DIR 的变量,其值为 ./logs,然后通过 mkdir -p 创建这个目录(如果文件不存在则创建,否则保持不变)。这一写法在脚本中很常见,用于方便后续操作对目录的引用。
celery -A aaa worker -l info > $CELERY_WORKER_LOG 2>&1 & 这行代码使用 celery 命令启动一个 worker 实例,任务名称为 aaa,日志级别为 info,并将输出和错误信息重定向到指定的日志文件 $CELERY_WORKER_LOG,同时使用 & 标记将脚本后台运行,避免占用终端。
PID_DIR="./pids" if [ -f $PID_DIR/runserver.pid ]; then kill $(cat $PID_DIR/runserver.pid) rm $PID_DIR/runserver.pid fi 通过检查 runserver.pid 文件是否存在,脚本会终止运行中的 runserver 服务进程,然后删除该 PID 文件。这里的 kill 命令需要传入进程 ID,其通过 cat 命令读取文件内容获取进程 ID,并拼接传递给 kill。
ps aux | grep 'celery' | grep -v grep | awk '{print $2}' | xargs kill -9 这行代码用于查找并终止名为 celery 的所有后台进程。通过 ps aux 查看所有进程,结合 grep 'celery' filters out 包含 celery 的进程(包括子进程),再通过 grep -v grep 忽略 grep 本身的进程,然后 awk '{print $2}' 提取进程号,最后 xargs kill -9 强制终止这些进程。
remaining=$(ps aux | grep 'celery' | grep -v grep)if [ -z "$remaining" ]; then echo "All Celery workers have been successfully killed." 这代码首先通过同样的方式查询是否存在 celery 进程。如果没有(-z 为空),则显示 All Celery workers have been successfully killed.。
转载地址:http://aqwfk.baihongyu.com/