shell脚本保证ipfs服务守护模式

! /bin/sh

host_dir="/data/wwwroot/default/" # 当前用户根目录
proc_name="ipfs" # 进程名
file_name="ipfs.log" # 日志文件
pid=0

proc_num() # 计算进程数
{
num=ps -ef | grep $proc_name | grep -v grep | wc -l
return $num
}

proc_id() # 进程号
{
pid=ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'
}

通过curl模拟登录获取http_code,模拟登录参数仅供参考

如果只需要判断某页面的状态可使用curl -I -s -w "%{http_code}" -o /dev/null http://www.baidu.com/ 直接获取即可

http_code=curl -I -s -w "%{http_code}" -o -d "userKey=admin&pass=c9127e832b41a" /dev/null https://ipfs.dehomeplus.com/= | head -n 1 | cut -d$' ' -f2

proc_num
number=? if [[number -eq 0 ]]||[[ http_code -ne 200 ]] # 判断进程是否存在 then cd /data/wwwroot/default nohup ./ipfs_daemon.sh>./ipfs.log 2>&1 & # 重启进程的命令,请相应修改 sleep 3 #延迟3秒是为了确保进程已正常启动并方便获取pid,否则有可能获取不到pid proc_id # 获取新进程号 echopid, date >> host_dirfile_name # 将新进程号和重启时间记录
fi

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • API 参考文档 本文档基于 go-ipfs v0.4.11-dev 版本,发布于2017年8月23日。 这是一篇...
    汤办阅读 12,891评论 0 8
  • 系统巡检脚本:Version 2016.08.09 ############################ 系统...
    NamasAmitabha阅读 5,190评论 0 0
  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 11,536评论 1 4
  • 观其大纲 第1部分Linux的基础知识第1章Linux概述第2章Linux系统的安装KickStart开始自动安装...
    周少言阅读 5,429评论 1 10
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linu...
    七寸知架构阅读 13,770评论 1 71