Linux 之centos7 制作服务自启动systemd

摘要: - Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别。systemd是靠管理unit的方式来控制开机服务,开机级别等功能。 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里临时介绍关于service后缀的文件。

  • Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别。systemd是靠管理unit的方式来控制开机服务,开机级别等功能。
  • 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里临时介绍关于service后缀的文件。因为systemd在开机要想执行自启动,都是通过这些*.service 的unit控制的

具体流程

  1. 在/usr/lib/systemd/system目录下新建一个 service-name.service的文件
  2. 以apache的httpd.service的unit为例解释
[Unit]
#定义描述
Description=The Apache HTTP Server
#指定了在systemd在执行完那些target之后再启动该服务
After=network.target remote-fs.target nss-lookup.target

[Service]
#定义Service 的运行type,一般是forking,就是后台运行
Type=notify
Environment=LANG=C
#以下定义systemctl start |stop |reload *.service  的每个执行方法,具体命令#需要写绝对路径
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
#创建私有的内存临时空间
PrivateTmp=true

[Install]
WantedBy=multi-user.target

以下是我自己写的一个java项目,需要他开机自运行的service,systemd会帮我执行我写脚本,shell如下,仅供参考

#!/bin/bash
CMD=$1

case $CMD in
-start)

        nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
        ;;
-stop)

        port=$(sudo netstat -tnlp | grep ‘:9099‘ |awk ‘{print $nf}‘ |awk -f‘/‘ ‘{print $1}‘)
        sudo kill $port
        ;;

-restart)

        port=$(sudo netstat -tnlp | grep ‘:9099‘ |awk ‘{print $nf}‘ |awk -f‘/‘ ‘{print $1}‘)
        sudo kill $port
        nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
        ;;
*)
        echo "Usage: shMediaManager.sh -start | -stop | -restart .Or use systemctl start | stop | restart  MediaManager.service "
        ;;
esac

编辑.service文件,在Exec*下执行脚本,来启动关闭重启服务

[UNIT]
Description=Media wanager Service
After=network.target

[Service]
Type=forking
**ExecStart=/home/mobileoa/apps/shMediaManager.sh -start
ExecReload=/home/mobileoa/apps/shMediaManager.sh -restart
ExecStop=/home/mobileoa/apps/shMediaManager.sh -stop**
PrivateTmp=True

[Install]
WantedBy=multi-user.target

设置开机自起
systemctl enable MediaManager.service
会创建一个连接

时间: 2024-10-30 07:24:52

Linux 之centos7 制作服务自启动systemd的相关文章

Linux中如何设置服务自启动?

转自:Linux中如何设置服务自启动? 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务,主要用三种方式进行这一操作: ln -s             在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0-6七个运行级别之一) chkonfig          命令行运行级别设置 ntsysv            伪图形运行级别设置 注意: 这三种方式主要用于以redhat为基础的发行版 如果还不知道运行级别是什么,那么最好先看看相关

linux下的apache服务自启动的几种方式

1,如果是安装包安装在Linux系统下,那么可以使用 [[email protected] ~]# service httpd restart 从而可以开启或者重启apache服务 与此同时,它的标准方式是: [[email protected] ~]# /etc/rc.d/init.d/httpd start 或者[[email protected] ~]# /etc/rc.d/init.d/httpd stop 或者[[email protected] ~]# /etc/rc.d/init.

【linux】Centos7 iscsi服务搭建

Server:#yum -y install targetcli#systemctl stop firewalld.service#systemctl start target.service#systemctl enable target.service#fdisk /dev/vdbnp1+3Gw#partprobe /dev/vdb#ls /dev/vdb(TAB)#pvcreate /dev/vdb1#vgcreate iscsi_vg /dev/vdb1#lvcreate -L 2G -

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务 1. 部署方式1:手动部署. 6 1.1. 配置防火墙. 6 1.2. 关闭firewall 6 1.3. 安装iptables防火墙. 6 1.4. 安装Apache 7 1.5. 安装MariaDB 9 1.5.1. 安装MariaDB 9 1.5.2. 启动服务. 10 1.5.3. 设置开机启动. 10 1.5.4. 为root账户设置密码. 11 1.5.5. 重启MariaDB 1

linux系统oracle服务自启动

终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸.具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本 将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1) dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME 2

centos7设置服务为开机自启动(以crond.serivce为例)

一.设置crond.service服务为开机自启动 步骤1:查看crond.serivce服务的自启动状态 [[email protected]_jenkins ~]# [[email protected]_jenkins ~]# systemctl is-enabled crond.service disabled [[email protected]_jenkins ~]# [[email protected]_jenkins ~]# 此时crond.serivce的自启动状态为disabl

linux 让一个程序开机自启动并把一个程序加为服务

本文以tomcat7为例 首先找到tomcat启动的目录,我的为 cd /usr/local/tomcat7/bin/ 这个目录 启动脚本是startup.sh 然后在/etc/rc.d/rc.local 这个文件中将tomcat的启动脚本添加进来即可. 重启操作系统,发现tomcat7可以开机自启动了. 将tomcat添加为服务 将 /usr/local/tomcat7/bin/catalina.sh 这个文件拷贝到 /etc/rc.d/init.d 这个目录并重命名为tomcat 使用命令

linux系统CentOS7

linux系统CentOS7 到http://mirrors.sohu.com/mysql/下载想要的mysql版本 这里用到的是 mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz 用 WinSCP上传到指定的目录下,这里是 /usr/local/src 也可以直接在shell端提要供下载文件的详细url用wget命令下载到指定文件夹内 wget是一个从网络上自动下载文件的自由工具,它支持HTTP.HTTPS和FTP协议. -c : 接着下载没下载完的文件,允许

linux日常运维(crond,systemd,chkconfing,unit,target)

1.任务计划:crond [[email protected] ~]# cat /etc/crontab                             (crontab配置文件) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin                                 (命令的路径) MAILTO=root                                               (发送邮件给