首页 > 编程知识 正文

centos7gitlab自启动,系统启动管理器

时间:2023-05-03 21:02:50 阅读:172185 作者:2642

另一方面,Systemd的概要Systemd是system daemon,是linux下的init软件。 由Lennart Poettering率先开发,在LGPL 2.1以上的版本许可证下开源公开。 与大多数版本中使用的System V样式init相比,systemd采用了以下新技术,后者表示系统服务之间的依赖关系,并基于此实现系统初始化时服务的并发启动:

(1)采用套接字激活和总线激活服务,提高各相互依赖服务的并行运行性能; )2)为了用Cgroups代替PID跟踪进程,进行两次fork后生成的守护进程也无法脱离systemd的控制。 二.如果自行启动以设定centos8服务的启动,则可以参考centos7方式进行配置,但是建议使用systemd进行统一管理。 本示例说明如何为java程序设置电源自启动。

1、编写tomcat服务的启停脚本[ root @ centos8Tomcat8] # vimautojavaapp.sh

脚本的内容如下

#! /thdpd/bash#description:这是tomcat8服务的启动、停止和状态确认脚本app _ name=' test.jar ' usage ((echo ' case 3360 sh run.sh isExist () PID=`pgrep-f$ ) app_name ) )如果没有返回1,则返回0if(-z'${PID} ); then return 1 else return 0 fi }start () { is exist if [ $?} -eq '0' ]' '; thenecho ' $ { app _ name } isalreadyrunning,PID=$ { PID }.' else CD/opt/Java app/nohup Java-jar $ { app _ name } then kill-9 $ { PID } else echo ' $ { app _ name } is not running ' fi } status () isExistif ) $? -eq '0' ]' '; thenecho ' $ { app _ name } is running.PID is $ { PID } ' else echo ' $ { app _ name } is not running ' fi } restop ();' 停止' )停止;' 状态' )状态;' 重新开始' )重新开始; * )使用; esac 2,授予脚本可执行权限[ root @ centos8javaapp ] # chmoduxautojavaapp.sh

3、验证脚本启动服务是否正常[ root @ centos8javaapp ] # shautojavaapp.sh status

test.jar is not running

[ root @ centos8javaapp ] # shautojavaapp.sh start

test.jar start success

[ root @ centos8javaapp ] # shautojavaapp.sh status

test.jar is running. Pid is 18053

[ root @ centos8javaapp ] # shautojavaapp.sh stop

4、进入systemd配置文件目录[ root @ centos8Java app ] # CD/usr/lib/systemd/system

5、创建javaapp.service服务[ root @ centos8system ] # vimjavaapp.service

[ root @ centos8system ] # pwd/usr/lib/systemd/system [ root @ centos8system ] # catjavaapp.service [ unit ] description=javaappapplicationfortestautostartwants=network-online.target [ service ] user=root type=forkingexecstation th DPD/bash/opt/javaapp/autojavaapp.shstopexecreload=

/usr/thdpd/bash /opt/javaapp/autojavaapp.sh restart [Install]WantedBy=multi-user.target 6、重载systemd配置

[root@centos8 ~]# systemctl daemon-reload

7、配置javaapp服务开机自启动

[root@centos8 system]# systemctl enable javaapp
Created symlink /etc/systemd/system/multi-user.target.wants/javaapp.service → /usr/lib/systemd/system/javaapp.service.

8、启停服务测试

[root@centos8 system]# systemctl status javaapp

[root@centos8 system]# systemctl start javaapp
[root@centos8 system]# systemctl status javaapp

[root@centos8 system]# systemctl stop javaapp

9、重启验证

三、systemd配置文件说明 1、systemd配置文件夹:

systemd 配置文件存在于以下三个文件夹中:

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。/run/systemd/system,系统执行过程中产生的服务脚本,优先级次之。/usr/lib/systemd/system 存放系统上所有的启动文件。优先级最低 2、unit分类

unit的定义文件可以根据其后缀名称识别其定义的类型,可以使用systemctl -t help 查看。
.servicre定义了系统服务的启动
.target 定义了系统启动的级别标签,systemd 没有运行级别的概念,创建标签只是为了兼容老版本。
.socket 定义了进程通信用到的套接字,套接字与进程是分离的
.device 定义了系统启动时内核识别的文件,systemd提供了设备的管理功能,/dev 下的设备由/etc/udev/下的配置文件与.device共同定制
.mount 定义了系统的文件系统的挂载点
.snapshop 系统快照
.swap 用于标识swap设备
.automount 文件系统的自动挂载点
.path用于定义文件系统中的一个文件或目录使用。常用于文件系统发生变化时,延迟激活服务。

3、service文件组成: 1、service文件三部分 [Unit]...[service]...[install] 2)、Unit单元

[Unit] :不属于第二个标签的定义都放在这里,或存放不属于unit类型的定义,描述信息,依赖的unit

Description:描述信息After:表明需要依赖的服务,作用决定启动顺序Before:表明被依赖的服务Requles:依赖到的其他unit ,强依赖,即依赖的unit启动失败。该unit不启动。Wants:依赖到的其他unit,弱依赖,即依赖的unit 启动失败。该unit继续启动Conflicts:定义冲突关系 3)、service单元

[Service]:

Type:启动时关系的定义,simple:exec启动的进程就是主进程。forking :exec 启动的进程生成的其中一个子进程成为主进程,启动完成后,旧的主进程会退出。ontshot:启动下一个进程前主进程退出。dbus:notify:ldle:PIDFile=/var/run/sshd.pidEnvironmentFile 需要使用到的变量的定义文件ExecStart= 启动 unit需要执行的命令ExecStartpre:ExecStartpost:ExecStop=停止unit需要执行的命令Restart:ExecReload=/thdpd/kill -HUP $MAINPIDKillMode=processRestart=on-failureRestartSec=42s 4)、install单元

[install]:服务启动或禁用时的一些选项

Alias:RequlredBy: 被那些unit所依赖,WanteBy:被那些unit所依赖 4、配置重载

修改了的unit文件需要重载,使用如下命令

#systemctl daemon-reload

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。