Linux操作系统:通过crontab服务定时启动脚本

C语言程序的内容:tenp_01.c

#include<stdio.h>
void main(){
    while(1){
    //printf("hello world");这里一定要拒绝 ”回显示操作“
    }
    return ;
}

下列为我需要启动的sh脚本内容:temp_00.sh

主要功能为:获取所有运行的进程内容,并通过grep进行筛选,判断temp_01的程序是否启动,如果不存在则启动,存在则不做任何操作。
#!/bin/bash
#Gets the parent ID of the child process
pro_id=`ps -ef | grep temp_01 | grep -v grep | awk '{print $2}'`

#An empty ID starts the program
if [[ &pro_id == "" ]]; then
    #echo "start process temp 01&pro id 123"
    /home/zdh/temp_01 &  #加个&让程序后天运行,关闭终端依然可以运行
fi
exit 0

crontab服务定时脚本内容

终端通过:crontab -e,来编辑定时服务

 注:有时会遇到crontab -e无法打开或编辑的情况。可以找到crontab文件直接sudo vim crontab进行编辑。我的文件位置在/etc/crontab这个绝对路径。

crontab -e
此内容的意思为:每分钟以bash脚本解析的形式去执行temp_00.sh脚本文件
* * * * * /bin/bash /home/zdh/temp_00.sh

注意事项:

1.在使用crontab配置定时任务时,对应指令,最好使用绝对路径不然找不到命令,导致无法执行(且报错信息会通过邮件方式发出,如果没发出就会以文件形式保存,这要特别注意,如果每分钟都报错,可能会存在硬盘爆满情况)
2.设置定时任务时,还需要注意,如果执行的是死循环程序,则需要  指令后面加上 (空格&)  使用指令后台运行,且在脚本后续加上使用exit 0,来正常退出脚本
3.拒绝”回显“操作,如:printf、out<<等打印操作,其中我出现了一个问题 while(1)printf(”hello world“);这样会不断的打印信息;出现问题的原因,回显:定时启动的脚本会不断打印信息,所以导致内存爆满

 Linux系统开机初始化脚本rc.d

编辑以下文件即可:

/etc/rc.d/rc.local

rc.local文件内容如下:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

#此命令,创建一个空文件
touch /var/lock/subsys/local   

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值