惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
I
InfoQ
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
量子位
博客园 - 叶小钗
月光博客
月光博客
IT之家
IT之家
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享

秋水逸冰

丽萨主机:双ISP家宽住宅IP VPS/CN2 GIA精品网/G口大带宽 | 秋水逸冰 Linux Kernel 6.18.x 编译版 | 秋水逸冰 思考未来人与 AI 的关系 | 秋水逸冰 3X-UI 面板安装和使用教程 | 秋水逸冰 Xray-UI 面板安装和使用教程 | 秋水逸冰 WCMP (Windows + Caddy + MariaDB + PHP) Nginx for Windows | 秋水逸冰 Aria2 for Windows | 秋水逸冰 Curl for Windows | 秋水逸冰 Wget for Windows | 秋水逸冰 Windows 11 Enterprise LTSC DD 镜像 Windows Server 2025 Datacenter DD 镜像 重新编译 curl 以支持 HTTP3 | 秋水逸冰 tiny10 和 tiny11 23H2 的 Windows DD 镜像 从 Apache httpd 切换到 Caddy2 LCMP (Linux + Caddy + MariaDB + PHP) Windows 11 Pro for Workstations 22H2 DD 镜像 Shadowsocks 编译版 by Teddysun | 秋水逸冰 适用于 UEFI 启动的多个 Windows 系统 DD 镜像 Linux Kernel 5.15.x 编译版 | 秋水逸冰 制作适用于 WSL 的任意 Linux 镜像 Windows 11 Pro for Workstations 21H2 DD 镜像 Windows 10 Enterprise LTSC DD 镜像 Linux Kernel 5.14.x 编译版 | 秋水逸冰 Linux Kernel 5.13.x 编译版 | 秋水逸冰 Windows Server 2022 Datacenter DD 镜像 在 Windows 10 上安装 Rocky Linux 系统 Linux Kernel 5.12.x 编译版 | 秋水逸冰 Linux Kernel 5.11.x 编译版 | 秋水逸冰 在 Windows 10 上安装 CentOS 系统
使用定时任务cron监视Shadowsocks进程 | 秋水逸冰
秋水逸冰 · 2017-12-31 · via 秋水逸冰

技术 秋水逸冰 78837浏览 31评论

有时候我们需要监视一下某个进程的持续运行,当遇到某种不可控因素导致进程被杀掉的情况下,就需要自动重新启动,以保证服务的可持续性。
比如,监控 Shadowsocks 服务端的运行状态。
于是写了个监视脚本 shadowsocks-crond.sh,自动监视,一旦发现进程不存在便会重新启动。每次监视事件都会写入日志。

下面介绍安装和使用步骤。

一、下载安装

首先需要将脚本下载到某个固定路径下,比如 /opt 下,再赋予执行权限。
执行以下命令:

wget --no-check-certificate -O /opt/shadowsocks-crond.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-crond.sh
chmod 755 /opt/shadowsocks-crond.sh

二、检查 cron 进程

执行以下命令,检查 cron 进程是否存在:

ps -ef | grep -v grep | grep cron


如果存在返回值,则表示 cron 已经正确安装并处于启动中。
否则,则需要安装 cron。

CentOS/Redhat/Amazon 执行如下命令:

yum install -y crontabs


Debian/Ubuntu 执行如下命令:

apt-get install -y cron

三、配置 cron 计划

假设监视脚本路径就是 /opt/shadowsocks-crond.sh
假设设为每 5 分钟监视一次。
那么配置 cron 计划如下:

(crontab -l ; echo "*/5 * * * * /opt/shadowsocks-crond.sh") | crontab -

以上表示,在保留原有的 cron 设置的前提下,追加设置
*/5 * * * * /opt/shadowsocks-crond.sh
即每过 5 分钟,执行一次脚本 /opt/shadowsocks-crond.sh

这样系统便会每 5 分钟检查一下 Shadowsocks 进程是否存在,如果不存在了会自动重新启动。
脚本每次运行会写日志的,日志完整路径如下:
/var/log/shadowsocks-crond.log

示例日志:

2017-12-31 13:45:01 Shadowsocks-libev is running with pid 32566
2017-12-31 13:50:01 Shadowsocks-libev is not running
2017-12-31 13:50:01 Starting Shadowsocks-libev
2017-12-31 13:50:01 Shadowsocks-libev start success
2017-12-31 13:55:01 Shadowsocks-libev is running with pid 5089

转载请注明:秋水逸冰 » 使用定时任务cron监视Shadowsocks进程