其他分享
首页 > 其他分享> > systemd 介绍

systemd 介绍

作者:互联网

systemd 介绍

systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。

systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。比如systemctl、hostnamectl、timedatectl、localctl等命令,这些命令虽然改写了init时代用户的命令使用习惯(不再使用chkconfig、service等命令),但确实也提供了很大的便捷性。

systemd 是内核启动后的第一个用户进程,PID 为1,是所有其它用户进程的父进程。

systemd 特点

systemd 语法

systemctl   [command]    [unit](配置的应用名称)

command可选项· 
start:启动指定的unit         systemctl start nginx
stop:关闭指定的unit          systemctl stop nginx
restart:重启指定unit         systemctl restart nginx
reload:重载指定unit          systemctl reload nginx
enable:系统开机时自动启动指定unit,前提是配置文件中有相关配置 systemctl enable nginx
disable:开机时不自动运行指定unit  systemctl disable nginx
status:查看指定unit当前运行状态   systemctl status nginx

systemd 配置文件说明

/etc/systemd/system/*  #系统管理员安装的单元, 优先级更高

/run/systemd/system/*  #运行时动态创建unit文件的目录

/usr/lib/systemd/system/* #系统或第三方软件安装时添加的配置文件。存放systemctl脚本

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统 system 和用户 user 之分, 即:/usr/lib/systemd/system /usr/lib/systemd/user

编写服务配置

每一个服务以.service结尾,一般会分为3部分:[Unit][Service][Install]

vim  /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server   #服务的简单描述
Documentation=http://nginx.org/en/docs/  #指定服务的文档,可以是一个或多个文档的 URL 路径
After=network.target remote-fs.target nss-lookup.target #表明需要依赖的服务,作用决定启动顺序

[Service]
Type=forking # 以 fork 方式从父进程创建子进程,创建后父进程会立即退出,子进程将成为主进程
PIDFile=/usr/local/nginx/logs/nginx.pid #pid文件路径
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf #启动前要做什么
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动服务命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload  #重启服务命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit 停止当前服务时执行的命令
PrivateTmp=true #True表示给服务分配独立的临时空间

[Install]
WantedBy=multi-user.target #服务安装的用户模式,从字面上看,就是想要使用这个服务的有是谁?上文中使用的是:multi-user.target ,就是指想要使用这个服务的目录是多用户。

配置项说明

[Unit]

主要是对这个服务的说明,内容, 文档介绍以及对一些依赖服务定义

[Service]

服务的主体定义,主要定义服务的一些运行参数,及操作动作

[Install]

服务安装的相关设置,一般可设置为多用户的

配置文件示例

Tomcat服务

## YUM安装
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=simple
EnvironmentFile=/etc/tomcat/tomcat.conf
Environment="NAME="
EnvironmentFile=-/etc/sysconfig/tomcat
ExecStart=/usr/libexec/tomcat/server start
SuccessExitStatus=143
User=tomcat

[Install]
WantedBy=multi-user.target


## 二进制安装
[Unit]
Description=tomcat
After=network.target

[Service]
Type=forking
Environment="export JAVA_HOME=/opt/jdk"
Environment="export JAVA_BIN=$JAVA_HOME/bin"
Environment="export JRE_HOME=$JAVA_HOME/jre"
Environment="export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib"
Environment="export PATH=$PATH:$JAVA_HOME/bin"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

标签:systemd,服务,介绍,nginx,usr,进程,unit
来源: https://www.cnblogs.com/lurenjia8/p/16215682.html