Bootstrap

Linux 技巧:让进程在后台运行更可靠的几种方法

开始概念之前首先上几个实战问答:

  • 1 .如何过滤占用某个端口的进程并且kill掉?
    例答: kill -9 lsof -n -P -i TCP -s TCP:LISTEN | grep 8000 | awk '{print $2}'
    简答: kill -9 lsof -i:8000 | grep 8000 | awk '{print $2}'
  • 2 .如何过滤出带有某些关键字符的运行程序并且kill掉?
    例答: kill -9 ps -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>&
;