Linux下通过定时任务检测进程并重启 您所在的位置:网站首页 linux重启定时任务服务 Linux下通过定时任务检测进程并重启

Linux下通过定时任务检测进程并重启

2023-06-22 05:41| 来源: 网络整理| 查看: 265

一、重启特定进程的脚本 #! /bin/bash ps -ef | grep "进程名字" | grep -v grep #如果进程搜索不出来,则$?的值为1,否则值为0 #当$?值不等于0的时候,重新启动进程 if [ $? -ne 0 ] then cd "进程所在目录" && "执行进程的语句" else echo "running" fi 二、将上述脚本设置为定时任务

设置定时任务需要用到crontab

crontab [-u username]    //省略用户表表示操作当前用户的crontab -e (编辑工作表) -l (列出工作表里的命令) -r (删除工作作)

用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

取值范围内的所有数字/ 每过多少个数字-从X到Z,散列数字 每五分钟执行 */5 * * * * 每五小时执行 0 */5 * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 三、一些坑

crontab定时任务需要至少有能够执行crontab命令的权限。 可以是wheel用户组用户或者root用户组用户。普通用户好像没有执行定时任务的权限。

crontab定时执行脚本时,没有环境变量的支持 如果脚本中用到一些环境变量,需要将此环境变量在脚本中导入

crontab执行.sh后缀脚本 crontab -e而后编辑定时任务。 格式为 : 时间 命令 如果命令为执行.sh脚本,则应该这样写:

/bin/sh 你的脚本位置的全路径(一定要全路径)

对脚本内容的要求 定向输入文件要写全路径名, 基本上所有的东西都要写全路径名。 除非导入了PATH环境变量。

四、一个例子

start.sh

if [ 1 -ne 2 ] then echo "不相等" >> /home/wat/test/log.txt else echo "相等" >> /home/wat/test/log.txt fi

crontab -e

#开机自启动任务 @reboot /bin/sh /home/wat/test/start.sh #每分钟执行一次start.sh脚本 * * * * * /bin/sh /home/wat/test/start.sh

在输出文件log.txt中,每过一分钟增加一条记录”不相等“



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有