linux找到启动的服务位置_Linux 之centos7 制作服务自启动systemd

7e40dc42055b4eca2edb4de332ce7ae2.gif

17c870f1b09cf991826b8d32338471c7.png

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=notifyEnvironment=LANG=C#以下定义systemctl start |stop |reload *.service  的每个执行方法,具体命令#需要写绝对路径ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUNDExecReload=/usr/sbin/httpd $OPTIONS -k graceful# Send SIGWINCH for graceful stopKillSignal=SIGWINCHKillMode=mixed#创建私有的内存临时空间PrivateTmp=true[Install]WantedBy=multi-user.target

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

#!/bin/bashCMD=$1case $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 ServiceAfter=network.target[Service]Type=forking**ExecStart=/home/mobileoa/apps/shMediaManager.sh -startExecReload=/home/mobileoa/apps/shMediaManager.sh -restartExecStop=/home/mobileoa/apps/shMediaManager.sh -stop**PrivateTmp=True[Install]WantedBy=multi-user.target

设置开机自起

systemctl enable MediaManager.service

会创建一个连接

f7bef07ddf5c60d7f4c923e2e04eb632.png

推荐阅读   点击标题可跳转

1、一文理解 Kubernetes 的存储系统机制

2、Ceph分布式存储工作原理,更加了解的Ceph

3、长文干货:文件和目录属性相关 Linux 命令详解,收藏~

4、详解.Redis Cluster 工作原理和集群创建和使用

5、你真的需要Kubernetes-k8s吗?

f87d3e52d5b7713e9e3ec201536690b0.png

c2ae0176d2422ad98c5e3887f26a1c69.gif

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值