centos7使用crontab命令,设置开机自启动任务

2022-11-01 1758阅读

温馨提示:这篇文章已超过881天没有更新,请注意相关的内容是否还可用!

前言

centos7使用crontab命令,设置开机自启动任务
(图片来源网络,侵删)
centos7使用crontab命令,设置开机自启动任务
(图片来源网络,侵删)

最近工作中,需要给一些在服务器运行的jar包服务设置开机自启,防止服务器意外宕机重启后,这些服务都不能正常使用。

方法

使用crontab命令,设置开机自启动任务。

注意:

1)通过cron.service定时服务来调用可执行文件时,cron是无法加载系统中的相关路径设置的,因此在脚本文件中,相关路径都要转换为绝对路径。尤其jdk的路径应当为其安装路径。

2)在执行start java application流程时,我们应当通过cd命令,对系统运行目录进行切换,以转到相应服务目录下。

1、为.sh脚本文件添加权限 对于windows环境下编辑的.sh可执行文件,我们拷贝到linux环境后,在cron.service服务中是没有权限执行该脚本的,但通过手动输入:sh *.sh命令,是可以成功执行该脚本的,因此我们需要为该脚本添加权限,以使其在Linux环境下为可执行文件。通过命令:ls –lcrontab 服务重启,我们可以查看文件的相关属性,下面的test.sh是非可执行文件,文件为灰色。

通过命令:chmod 744 test.sh,我们就可以将test.sh转为可执行文件,文件名为绿色,同时x也代表该文件为可执行文件。

2、编辑crontab定时任务

下面我们以root用户为例,来编辑crontab定时任务,对于root用户,我们可以直接通过命令:crontab –e,打开crontab文件编辑器,点击i键,就可以对crontab文件进行编辑。

输入命令:@reboot /root/LinuxAutoStartProject_jar/test.sh

@reboot,指定服务器启动时,cron.service定时任务会在该时间点执行相应的事务。

/root/LinuxAutoStartProject_jar/test.sh,指定了定时任务将要执行的任务,可以是相关Linux命令,也可以是相关可执行的脚本程序。

输入命令后,按esc退出键,然后输入:wq键,保存crontab文件并退出。定时任务编辑成功并保存后,出现: crontab:installing new crontab,则代表定时任务设定成功。

3、设置crond服务开机自启动

设置crond定时任务服务开机自启,在 /etc/rc.d/rc.local脚本中加入 /sbin/service crond start即可

4、后台运行jar包的脚本文件

#!/bin/bash
WORK_DIR="/root/app/app_jar"
JAR_NAME="app.jar"
MY_JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre/bin/java"
HOST_IP="127.0.0.1"
pid=`ps -ef | grep $JAR_NAME | grep -v grep |awk '{print $2}'`
echo "===>pid:$pid"
if test -n "$pid"
then
ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}'|grep $pid > /dev/null
if test $? -eq 0
then
echo "The process is running !\n"
exit 3
fi
fi
#Check process is existence
if [ ! -f $WORK_DIR/$JAR_NAME ] ; then
   echo "Error: Can not find the file $WORK_DIR/$JAR_NAME,shik next shell"
   exit 3
else
   echo "$WORK_DIR/$JAR_NAME exist,go next"
fi
#start jar
echo "start java application"
cd $WORK_DIR
nohup $MY_JAVA_HOME -Djava.library.path=lib -Djava.rmi.server.hostname=$HOST_IP -Xms128m -Xms256m -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -jar $JAR_NAME > out.log 2>&1 &

5、nohup命令

nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

nohup 是 no hang up 的缩写,就是不挂断的意思。

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

用法举例: nohup command > myout.file 2>&1 &

在上面的例子中,0 – stdin (standard input)crontab 服务重启,1 – stdout (standard output),2 – stderr (standard error) ;

2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。

参考资料

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]