开始概念之前首先上几个实战问答:
- 1 .如何过滤占用某个端口的进程并且kill掉?
例答: kill -9lsof -n -P -i TCP -s TCP:LISTEN | grep 8000 | awk '{print $2}'
简答: kill -9lsof -i:8000 | grep 8000 | awk '{print $2}'
- 2 .如何过滤出带有某些关键字符的运行程序并且kill掉?
例答: kill -9ps -ax | grep keywordsstring | awk '{print $1}'
- 3 .如何在后台启动一个服务并且将标准输出重定向到一个文件(以启动一个node服务为例)?
例答: cd /project && (npm run dev > /project/logs/server_log_date +%Y-%m-%d
.txt 2>&1 &)
一个服务的监测脚本示例:
#!/bin/bash
export PATH=$PATH:/usr/local/bin
cmd=`/usr/sbin/lsof -n -P -i TCP -s TCP:LISTEN | grep 8090`
if [ -z "$cmd" ]
then
echo 'down...' `date` >> /project/down.txt && cd /project && (npm run dev > /project/logs/server_log_`date +%Y-%m-%d`.txt 2>&