博客
关于我
linux 的sh脚本中的-p、2>&1 &、$!、[]、-f、grep、awk、-z 相关的操作
阅读量:790 次
发布时间:2023-02-01

本文共 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/

你可能感兴趣的文章
linux 技巧:使用 screen 管理你的远程会话
查看>>
Linux 探索之旅 | 第五部分第六课:一朝 Shell 函数倾,斗转星移任我行
查看>>
Linux 操作系统启动流程以及trouble shooting思路
查看>>
linux 整理
查看>>
Linux 文件与目录管理/tree命令
查看>>
Linux 文件权限
查看>>
Linux 文件目录管理命令
查看>>
Linux 文件目录详解
查看>>
Linux 文件系统
查看>>
Linux 文件系统详解
查看>>
Linux 文本编辑常用快捷键
查看>>
Linux 日常常用命令总结
查看>>
Linux 日志服务与日志管理详解
查看>>
Linux 显示磁盘空间使用情况的命令:df
查看>>
Linux 普通用户使用 sudo 命令报 xxx is not in the sudoers file 问题解决
查看>>
Linux 最常用命令(简单易学,但能解决 95% 以上的问题)
查看>>
linux 服务 指定用户,linux指定用户名自启动服务
查看>>
Linux 服务器上安装和使用 Redis,只需这 4 步!
查看>>
Linux 服务器启动流程详解
查看>>
Linux 服务器启动流程详解
查看>>