博客
关于我
linux 的sh脚本中的-p、2>&1 &、$!、[]、-f、grep、awk、-z 相关的操作
阅读量:789 次
发布时间: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 的账号与群组管理
查看>>
linux 目录&基础命令
查看>>
Linux 目录简介
查看>>
Linux 目录结构
查看>>
Linux 硬链接和软链接到底是什么?怎么理解?
查看>>
Linux 磁盘分区详解
查看>>
Linux 磁盘划分(3分钟看懂)
查看>>
Linux 磁盘和文件系统管理1
查看>>
Linux 磁盘和文件系统管理2
查看>>
Linux 磁盘满了不用慌,这几个命令在手不断梭哈就好
查看>>
Linux 磁盘爆满【解决办法】
查看>>
Linux 磁盘管理
查看>>
Linux 磁盘管理及监控与性能评估
查看>>
Linux 示例中的 apt 命令大全
查看>>
linux 禁用磁盘密码,linux 磁盘加密保护
查看>>
Linux 系统备份与恢复详解
查看>>
Linux 系统安装 Mongodb 数据库
查看>>
Linux 系统安装MySQL
查看>>
Linux 系统安装配置PHP服务(源码安装)
查看>>
Linux 系统快键键汇总
查看>>