百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

CentOS7添加开机自启动任务(centos7设置开机启动项)

sinye56 2024-11-11 13:34 24 浏览 0 评论

随笔记录,平时工作中总是需要在Linux 系统下面添加开机自启动的任务,今天就总结一下针对添加任务使用的方法做一下记录。题外话想深度理解开机启动的过程,感兴趣的同学可以查看一下本人写的聊聊Linux的启动过程,便于理解如何在操作系统启动的相应阶段添加开机自启动任务。

先抛出几个常用的组合命令,后台执行任务和标准错误输出重定向到标准输出自定义日志文件。

  • 执行后台运行任务命令

nohup + 自动运行命令 + & = 后台自动运行命令

nohup /export/install_pkgs/core-agent/agent/bin/falcon-agent -c /export/install_pkgs/core-agent/agent/config/cfg.json &
  • 查看后台运行命令
[root@scm core-agent]# jobs -l
[1]+ 126018 Running                 nohup /export/install_pkgs/core-agent/agent/bin/falcon-agent -c /export/install_pkgs/core-agent/agent/config/cfg.json &
  • 标准错误输出重定向到日志文件
* * * * * docker exec php php /var/www/html/jd-api/yii light/light > /data0/allinone/php/applogs/crontab.log 2>&1

方法1、通过rc.local添加开机自启动任务

注意:有的同学会疑问/etc/rc.local文件,编辑rc.local文件可以吗?答案是可以的,通过ll命令可以查看文件属性,可以发现/etc/rc.local 是/etc/rc.d/rc.local的软链接,编辑的是同一个文件。

[root@scm etc]# ll rc.local
lrwxrwxrwx. 1 root root 13 Jun  2 16:21 rc.local -> rc.d/rc.local

首先修改rc.local的执行权限

chmod +x /etc/rc.d/rc.local
编辑rc.local文件添加任务,命令中的路径使用绝对路径

编辑rc.local文件添加任务,命令中的路径使用绝对路径

nohup /export/install_pkgs/core-agent/agent/bin/falcon-agent -c /export/install_pkgs/core-agent/agent/config/cfg.json &

接下来执行rc.local命令

source /etc/rc.d/rc.local

方法2、 通过systemctl来控制服务启动,下面以添加一个set_write_same service为例

新建服务器文件/etc/systemd/system/set_write_same_centos_v7.service;

编辑set_write_same_centos_v7.service服务,内容如下:

[Unit]
Description="Set the max_write_same_blocks of some scsi disks to 0" 

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c "/usr/local/bin/setWriteSame 2>&1 /var/log/setWriteName"

[Install]
WantedBy=multi-user.target

修改服务执行权限和所属用户和分组,一般情况下上线的内容通常会限制;

chmod +x /etc/systemd/system/set_write_same_centos_v7.service && chmod +x /usr/local/bin/setWriteSame
chown root:root /etc/systemd/system/set_write_same_centos_v7.service

加载服务、启动服务、服务添加开机自启动项。

systemctl daemon-reload
systemctl start set_write_same_centos_v7
systemctl enable set_write_same_centos_v7

systemctl其它命令

systemctl status set_write_same_centos_v7 //查看服务状态
systemctl disable set_write_same_centos_v7 //取消开启自启动

方法3、通过chkconfig添加开机自动执行任务,下面做一个简单的服务脚本

新建任务文件名称print_dated,任务内容打印当前时间;

提示:如下代码5、6行必须填写。

#!/bin/sh
#
# Startup script for print_date
#
#chkconfig: 35 85 15
#description: print_date
#processname: print_dated
cur_date=`date +%Y-%m-%d,%H:%m:%s`
echo $cur_date

将任务print_dated复制到/etc/rc.d/init.d目录中;

添加任务、查看任务;

chkconfig --add print-dated
chkconfig --list print-dated

验证任务是否添加成功;

[root@scm init.d]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
print-dated     0:off   1:off   2:off   3:on    4:off   5:on    6:off

chkconfig常用命令列表

chkconfig --list        #列出所有的系统服务
chkconfig --add httpd        #增加httpd服务
chkconfig --del httpd        #删除httpd服务
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list        #列出系统所有的服务启动情况
chkconfig --list mysqld        #列出mysqld服务设置情况
chkconfig --level 35 mysqld on        #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级

chkconfig level 运行级别参考

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有联网NFS)
运行级别3:完全的多用户状态(有联网NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

恭喜你Get到三种添加开机自启动的方法,快去试试吧!

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: