-
Linux Systemd 简介
2017-06-13 15:45:26systemd是linux下的一款系统和服务管理器,为什么要使用systemd ? 在rpm包二进制方式安装的linux软件中,使用init守护进程进行服务状态的管理或者 使用service命令 例如启动Mysql数据库可以是 /etc/init.d/mysql ...systemd是linux下的一款系统和服务管理器,为什么要使用systemd ? 在rpm包二进制方式安装的linux软件中,使用init守护进程进行服务状态的管理或者 使用service命令 例如启动Mysql数据库可以是 /etc/init.d/mysql start 或者service mysql start.
使用linux init进程进行管理服务的时候有两个缺点:
1.init系统进程是串行执行的,也就是同步的 ,只有前一个进程启动完成,才会启动下一进程。
2.启动脚步复杂,init进程是只执行启动脚步,不管其他的任务
使用Systemd优点:
1.Systemd支持并行化任务,
2.同时采用socket于D-Bus总线式激活服务,按需启动守护进程(daemon)
在新版的Linux系统中都在使用sytemd 进行管理 例如(Ubuntu 16、Debian 8、CentOS 7)
具体的操作sytemd命令使用参考 阮一峰 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
Systemd介绍https://wiki.archlinux.org/index.php/systemd_(简体中文)
https://www.freedesktop.org/wiki/Software/systemd/
-
Linux 使用systemd创建tomcat自启动服务
2021-03-04 14:56:51文章目录Linux 使用systemd创建tomcat自启动服务一、 为什么使用systemd而不是chkconfig1.1 `init`1.2 `systemd` `systemctl`二、 使用systemd配置tomcat2.1 定义启动脚本2.2 启用服务2.3 查看服务2.4 查看服务运行...文章目录
Linux 使用systemd创建tomcat自启动服务
操作环境:
ubuntu: 20.04 LTS
tomcat: 9.0.43 使用压缩包解压方式安装
tomcat 安装目录:/usr/local/apache-tomcat-9.0.34
一、 为什么使用systemd而不是chkconfig
chkconfig
管理的是系统服务, 默认是对init
进程的服务的管理工具。在本文的操作环境并没有找到chkconfig
指令。init
是相对较早的系统启动时的守护进程启动方式。
1.1
init
init
的启动列表定义在/etc/init.d
文件中, 而文件中所链接的具体启动文件在/etc/init.d/
文件夹中。
如tomcat 如果使用init方式定义启动服务,启动文件则在/etc/init.d/tomcat
文件中, 具体查看 https://blog.csdn.net/qq_27843945/article/details/830594361.2
systemd
systemctl
systemd
是一种init
的进化产品,大部分Linux发行版本都支持。 与init
的对比可以点击Systemd 入门教程:命令篇systemd
配置自启动时配置文件在usr/lib/systemd/system/
文件夹下。systemctl
为管理systemd
的工具。
二、 使用systemd配置tomcat
2.1 定义启动脚本
$ vi usr/lib/systemd/system/tomcat.service
[Unit] Description=tomcat After=network.target [Service] Type=forking ExecStart=/usr/local/apache-tomcat-9.0.34/bin/startup.sh ExecReload= ExecStop=/usr/local/apache-tomcat-9.0.34/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target
2.2 启用服务
$ systemctl enable tomcat
2.3 查看服务
$ systemctl list-unit-files --type=service | grep tomcat tomcat.service disabled enabled
2.4 查看服务运行状态
$ systemctl status tomcat tomcat.service - tomcat Loaded: loaded (/lib/systemd/system/tomcat.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-03-04 14:36:14 CST; 1h 4min ago Process: 898 ExecStart=/usr/local/tomcat/apache-tomcat-9.0.43/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 957 (java)
其中
Active
:active (running)
表示正在运行。表示服务添加成功。2.5 重启电脑试试看
$ reboot
引用
[1] Linux chkconfig命令 https://www.runoob.com/linux/linux-comm-chkconfig.html
[2] Linux init、service、systemctl 三者区别 https://segmentfault.com/a/1190000038458363
[3] systemctl 命令完全指南 https://linux.cn/article-5926-1.html
[4] Systemd 添加自定义服务(开机自启动) 注释进行说明 https://www.cnblogs.com/jhxxb/p/10654554.html
[5] Linux添加systemd服务,使用systemctl start xxx启动服务
https://blog.csdn.net/masteryee/article/details/83689990 -
【Linux】【Httpd】Centos7 编译安装 & 添加systemd服务
2020-08-04 13:31:33针对Linux 运维来说,养成必要的、良好的习惯来说至关重要,目前科技技术的更新层次不齐,更新的速度都大不相同,所以在Linux 的世界里,我们在安装任何服务,任何应用的之前,都应该查询当前系统版本、系统内核情况...针对Linux 运维来说,养成必要的、良好的习惯来说至关重要,目前科技技术的更新层次不齐,更新的速度都大不相同,所以在Linux 的世界里,我们在安装任何服务,任何应用的之前,都应该查询当前系统版本、系统内核情况,防止因差异化导致服务无法正常使用。
- # cat /etc/redhat-release
- CentOS Linux release 7.7.1908 (Core)
- #uname -a
- Linux test 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
接下来,我们进入今天的主题,编译安装Httpd 和添加 systemd服务。
1、准备依赖环境
- # yum -y install pcre-devel
- # yum -y install openssl-devel
- # yum -y groupinstall "Development Tools"
2、arp-util安装的依赖包
- # yum install expat-devel
3、编译安装apr-1.7.0
- # wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
- # tar xf apr-1.7.0.tar.gz
- # cd apr-1.7.0
- # ./configure -prefix=/usr/local/apr(执行时,可能会报rm: cannot remove `libtoolT': No such file or directory )
- # make && make install
4、编译安装apr-util-1.6.1
- # wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
- # tar xf apr-util-1.6.1.tar.gz
- # cd apr-util-1.6.1
- # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
- # make && make install
5、编译安装httpd-2.4.41
- # wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
- # tar xf httpd-2.4.41.tar.gz
- # cd httpd-2.4.41
- # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modeles=most --enable-mpms-shared=all
- # make && make install
注意事项:apache 2.4版本之后,MPM(Multipath Processing Moules)使用多路处理模块,一共有三种工作模型,默认prefork,通过--with-mpm来指定configure编译模型,比如worke模型:--with-mpm=worker
- prefork模型:是两级进程模型,由父进程负责生成和管理多个子进程,每个子进程负责响应一个用户的请求。
- worker模型:是三级进程模型,由父进程生成和管理多个子进程,每个子进程又生成多个线程,由每一个线程来响应一个用户的请求。
- event模型:是二级进程模型,由父进程生成和管理多个子进程,每个子进程又通过事务(event-driven)机制直接响应多个用户请求。
6、启动httpd
启动之前,关于httpd服务如何加入systemctl并设置开机启动的话题,我们先来准备相关内容;
1)编写启动脚本:vim httpd
#!/bin/bash
# chkconfig: 12345 80 90 function start_http(){ /usr/local/apache/bin/apachectl start } function stop_http(){ /usr/local/apache/bin/apachectl stop } case "$1" in start) start_http ;; stop) stop_http ;; restart) stop_http start_http ;; *) echo "Usage : start | stop | restart" ;; esac
PS: 经实践检验,该httpd的shell脚本,的restart启动指令还在一定不足,会导致服务重启失败,直接active(exit)状态;处理方式分别执行systemctl stop httpd和systemctl start httpd 命令,先停后启的原则!后续有时间在优化该脚本!!!
2)加入系统服务
- # chmod a+x httpd
- # cp -arf httpd /etc/init.d/
3)启动编写的httpd服务
- # systemctl daemon-reload
- # systemctl start httpd
4)设置开机启动
- # chkconfig --add httpd
7、httpd的安装目录结构说明
- /etc/httpd/ : 配置文件的主目录,在编译安装./configure时候指定的--sysconfdir可以根据需要更换
- extra : 子配置文件
- httpd.conf : 主配置文件
- magic
- mime.type
- original
- /usr/local/apache/ : Apache 的安装服务的主目录
- bin : apache 的 命令文件
- build
- cgi-bin
- error
- htdocs
- icons
- include
- logs
- man
- manual
- modules : apache的LoadModule的so文件
- # cat /etc/redhat-release
-
Centos7安装tomcat-8.5.9+jsvc并配置systemd服务
2016-12-22 22:30:59Centos7安装tomcat-859并配置systemd服务 一安装JDK 二安装tomcat-859和jsvc 三建立tomcat用户并分配目录 四编辑systemd服务单元 五添加tomcat为自启动服务Centos7安装tomcat-8.5.9并配置systemd服务一.安装JDK.到...Centos7安装tomcat-8.5.9+jsvc并配置systemd服务
一.安装JDK.
重要:tomcat-8.5.9依赖jre7以及以上版本,jdk包含了jre.
到oracle网站下载jdk8,linux的64位rpm版.
[root#]rpm -ivh jdk-8u111-linux-x64.rpm提示:jdk安装后位于/usr/java/目录内,default和latest都是软链接到实际目录。
二.安装tomcat-8.5.9和jsvc.
2.1.到tomcat网站下载tomcat-8.5.9,Core里面的tar.gz版.
[root#]mkdir /opt/apache/
[root#]tar xvf apache-tomcat-8.5.9.tar.gz -C /opt/apache/2.2.编译安装jsvc.
编译前需要先安装好gcc,autoconf和jdk。
[root#]yum install gcc autoconf进入${CATALINA_BASE}/bin目录下,
[root#] cd /opt/apache/apache-tomcat-8.5.9/bin/解压文件,
[root#] tar xf commons-daemon-native.tar.gz编译安装jsvc
-with-java=/usr/java/latest 指定了jdk的路径.
[root#] cd commons-daemon-1.0.15-native-src/unix/
[root#] ./configure –with-java=/usr/java/latest
[root#] make
[root#] cp jsvc ../..三.添加tomcat用户,并分配目录.
tomcat的daemon.sh默认以tomcat用户启动,所以需要先添加tomcat.
[root#]useradd tomcat -s /sbin/nologin -M
[root#]chown -R tomcat /opt/apache/apache-tomcat-8.5.9四.添加systemd服务单元.添加tomcat为自启动服务.
[root#]vi /etc/systemd/system/tomcat.service
加入如下内容:
[Unit] Description=Apache Tomcat Web Application Container After=network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment=JAVA_HOME=/usr/java/latest Environment=CATALINA_HOME=/opt/apache/apache-tomcat-8.5.9 Environment=CATALINA_BASE=/opt/apache/apache-tomcat-8.5.9 ExecStart=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh start ExecStop=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh stop [Install] WantedBy=multi-user.target
输入:wq保存。
下面,设置tomcat为自启动,然后启动tomcat服务。
[root#]systemctl daemon-reload
[root#]systemctl enable tomcat
[root#]systemctl start tomcat
[root#]systemctl status tomcat使用本机浏览器打开http://localhost:8080/测试。
五.重要说明:
1).tomcat正常运行需要设置以下环境变量:
- JAVA_HOME(必须),
- JRE_HOME(可选)
- CATALINA_HOME(必须)
- CATALINA_BASE(可选)
本文tomcat.service内已经将环境变量设置好。如果不想在service单元内设置,可以在
daemon.sh里面设置JAVA_HOME和CATALINA_HOME,添加在# OS specific support (must be 'true' or 'false').
这一行前面。也可以在daemon.sh的命令行参数里面设置,如下:
ExecStart=/opt/apache/apache-tomcat-8.5.9/bin/daemon.sh --java-home /usr/java/latest --catalina-home /opt/apache/apache-tomcat-8.5.9 start
2).关于setenv.sh
${CATALINA_HOME}/bin/setenv.sh里面不可以设置CATALINA_HOME和CATALINA_BASE,因为setenv.sh是需要在这两个环境变量存在的情况下,定位路径。3).systemd运行shell脚本的环境变量不是从/etc/profile里面读取。详情可参考systemd文档,以及bash文档。
参考资料:
1.http://blog.csdn.net/xiaobaoxiaodun/article/details/53539680
2.https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-centos-7
3.http://tomcat.apache.org/tomcat-8.5-doc/setup.html -
linux dev input使用消失_Systemd 服务:响应变化 | Linux 中国
2020-11-12 10:32:52拿一个 USB 摄像头,然后只需插入它即可自动启动监视系统。如果这个电脑棒重启后发现连接了摄像头也启动监视系统就更加...它很小且安静,由于它是基于 x86 架构的,因此我为我的打印机安装驱动没有任何问题,而且这... -
linux:Systemd使用(systemctl)
2020-08-15 18:52:21系统服务管理工具systemd是为了便于linux用户操作系统服务的管理,systemd提供了systemctl命令工具进行systemd的各项操作。 Systemd的版本 systemd --version systemd和systemctl的二进制文件和库的安装位置 where... -
Linux的systemd特性及awk使用
2018-11-24 18:17:321、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理Systemd的新特性: 系统引导时实现服务并行启动; 按需激活进程; 系统状态快照; 基于依赖关系定义服务控制... -
Linux的systemd特性及gawk使用
2018-10-07 12:50:161、 简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 Systemd的新特性: 系统引导时实现服务并行启动; 按需激活进程; 系统状态快照; 基于依赖关系定义服务... -
【rpc配置】zookeeper在linux下的单机配置+systemd服务化+自启动
2019-01-16 00:17:56Linux 安装zookeeper linux 安装配置zookeeper 当然,还有本篇的试错篇 【rpc配置】zookeeper在linux下的单机配置【草稿版】 因为本篇是正式归纳篇。 配置 从官网下载: sudo wget http://mirror.bit.e... -
Linux中使用systemd挂载文件系统
2014-12-28 20:40:08在RHEL7和其他Linux 版本中引进的Linux systemd,不仅可以关闭与开启服务,在安装好RHEL7服务器之后,你也许会对/etc/fstab这个目录感兴趣,这个文件用于管理整个文件系统挂载,刚安装时它几乎是空的,在文件中 -
systemd命令管理linux系统
2015-06-28 13:55:02Systemd是一种新的linux系统服务管理器。 它替换了init系统,能够管理系统的启动过程和一些系统服务,一旦启动起来,就将监管整个系统。在本文中,我们用的是安装有 systemd 216 版本的centos 7.0,其最新版本... -
浅谈linux6:以systemd为例,初探系统服务管理
2018-04-12 07:07:21假如你用的不是很老版本的unix系统,那么你一定对systemd不甚陌生。 查看服务:systemctl status servicename 停止服务:systemctl stop servicename ...需要安装么?为什么在开篇要提到版本差异? system... -
CentOS安装编译 nginx 并使用 systemd 进行服务管理
2019-05-31 19:12:50OS:CentOS Linux release 7.6.1810 (Core) nginx:1.16.0 安装 下载源码包 $ wget http://nginx.org/download/nginx-1.16.0.tar.gz 安装依赖包 $ yum -y install gcc make pcre pcre-devel openssl openssl-... -
Linux系统的systemd与gawk的使用
2018-08-31 12:06:361、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 针对CentOS7系列的systemd是一种init软件,用于管理服务与程序;CentOS5有SysV,而6有Upstart;其7和5、6的... -
使用systemd管理MySQL服务器
2020-01-08 16:28:03文章目录系统概述1. 为Mysql配置systemd2. 使用systemd配置多个MySQL实例3....如果在以下Linux平台上使用RPM或Debian软件包安装MySQL,则服务器的启动和关闭由systemd管理: RPM 包平台: 企业版Linux 7变体... -
用systemd命令来管理linux系统
2017-03-27 20:51:47Systemd是一种新的linux系统服务管理器。它替换了init系统,能够管理系统的启动过程和一些系统服务,一旦启动起来,就将监管整个系统。在本文中,我们用的是安装有 systemd 216 版本的centos 7.0,其最新版本可以从 ... -
[转贴]systemd 编写服务管理脚本
2018-09-21 15:02:00【转贴】sparkdev大神的博客, 关于 systemd的配置文件的 介绍, 自己之前二进制安装 k8s 时 超过一个 service文件 但是当时不明不白的。 现在再学习一下大神的文章 的确牛B 。 systemd 编写服务管理脚本 ... -
linux把程序安装成服务
2019-01-11 16:12:06进入/ets/systemd/system新建一个文件 cd /ets/systemd/system vi serviceName.service 写入下面的命令 [Unit] Description=程序描述 After=syslog.target network.target [Service] Type=simple ExecStart=/... -
安装错误 服务尚未启动_Linux centos7服务器安装自启动的tomcat服务
2020-11-28 15:59:07例如:/usr/local/dmstomcattomcat做成系统服务把tomcat做成系统服务,就可以使用service systemctl 快速管理tomcat服务,自启动等。操作步骤/usr/lib/systemd/system/目录下新建文件dmstomcat.servicev... -
关于Linux Systemd.service自定义系统服务,实现开机启动sharding-proxy
2019-07-09 16:55:15最近测试环境服务器,重启后发现有一些没有通过Docker安装的中间件,在启动后没有起起来,于是乎就自己写了一个linux系统服务,好了,废话不多说,直接上内容,这里我们以sharding-proxy为例: 创建Linux服务文件 ... -
安装时许可服务器无法启动_Linux centos7服务器安装自启动的tomcat服务
2021-01-02 16:40:09例如:/usr/local/dmstomcattomcat做成系统服务把tomcat做成系统服务,就可以使用service systemctl 快速管理tomcat服务,自启动等。操作步骤/usr/lib/systemd/system/目录下新建文件dmstomcat.servicev... -
真的超赞!用systemd命令来管理linux系统!
2017-05-02 14:35:00Systemd是一种新的linux系统服务管理器。 它替换了init系统,能够管理系统的启动过程和一些系统服务,一旦启动起来,就将监管整个系统。在本文中,我们用的是安装有 systemd 216 版本的centos 7.0,其最新版本可以从... -
Linux部署(二):centos7使用systemd管理supervisor进程
2020-04-04 15:47:41centos7使用systemd管理supervisor...背景 : 已安装supervisor 正常用命令行启动和关闭supervisor服务 效果为 用命令$ systemctl start 自定义服务名.service 启动supervisor服务 ; 且可实现supervisor服务开启自... -
Linux20180511八周一次课cron chkconf systemd unit target
2018-05-12 17:25:51八周一次课(5月11日)10.23 linux任务计划cron10.24 chkconfig工具10.25 systemd管理服务10.26 unit介绍10.27 target介绍扩展1. anacronhttp://blog.csdn.net/strikers1982/article/details/47872262. xinetd服...