Linux 之centos7 制作服务自启动systemd
2023-09-11 14:16:11 时间
- 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控制的
Linux网络服务之DNS服务 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互 映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别。systemd是靠管理unit的方式来控制开机服务,开机级别等功能。 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里临时介绍关于service后缀的文件。因为systemd在开机要想执行自启动,都是通过这些*.service 的unit控制的
具体流程
在/usr/lib/systemd/system目录下新建一个 service-name.service的文件 以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
会创建一个连接
Linux网络服务之DNS服务 DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互 映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
相关文章
- linux进程的挂起和恢复
- 【Linux】linux常用查看命令
- 如何查看Linux操作系统的位数
- linux more less 用法
- Linux - CentOS7防火墙设置
- Linux下安装和运行Wireshark
- Linux下用户组、文件权限详解
- linux命令——mutt的安装和使用【转】
- Linux deepin 15.11设置:输入时禁用触摸板
- linux cp命令强行覆盖复制
- Linux中基于hadoop安装hive(CentOS7+hadoop2.8.0+hive2.1.1)
- 【Linux 网络编程】TCP poll聊天程序
- L70.linux命令每日一练 -- 第十章 Linux网络管理命令 -- nc和ssh
- L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
- linux top命令及结果详解 top -p 查看Linux程序运行进程
- 第四章 linux字符设备的编写二
- linux Capabiltiy 示例——以前只有root和普通用户两种权限,root的权限太大了,现在有了cap,可以细分让某持续有单个权限而非所有特权,见下示例
- linux(centos7) 查看磁盘空间大小
- linux分区命名
- linux安装selenium、chromedriver、Chrome浏览器、BrowserMob Proxy(代理)爬虫爬站环境安装及测试实例
- Linux好用命令之duf命令