当前位置: 首页 > Linux

linux系统服务(systemctl)的使用

时间:2023-04-07 02:09:17 Linux

服务:驻留在系统内存中,可以提供一些系统和网络功能的进程;现在最新的Linux系统使用systemctl进行服务管理1.运行级别分类运行级别>运行级别0:系统关机状态>运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录>运行级别2:多用户状态(无NFS)>运行级别3:完全多用户状态(有NFS)>运行级别4:系统未使用,保留>运行级别5:X11控制台>运行级别6:系统正常关闭和重启2.管理服务systemctl(root权限)>systemctl[opt]xxx.service>status查看当前服务状态>start启动服务>stop关闭服务>restart重启服务>enablesetbootstart>disablesetbootnotstart>reloaddoesnot按照具体的服务名称,重新加载配置文件>masklogoutservice>unmaskcancellogout3一些常用的命令systemctl查看当前启动的服务systemctllist-units查看所有服务systemctllist-unit-files查看服务的依赖关系systemctllist-dependenciesxx.service查看服务的依赖关系(反向)systemctllist-dependencies--reversexx.service4.system服务相关的一些目录(Centos环境,Debian环境可能略有不同)/usr/lib/systemd/system/默认安装在系统中的软件的启动脚本目录/etc/systemd/system/启动脚本目录/etc/sysconfig/服务初始化选项目录/var/lib/服务运行时生成的数据存放目录/etc/xxx/各服务配置目录5、结合实例详细讲解,a桌面上启用了两个ssh服务。我们最常使用的ssh服务,系统默认为ssh服务使用22端口。现在我想再开启一个ssh服务,端口88881,系统服务开启启动脚本/usr/lib/systemd/system/sshd.service,复制到/etc/systemd/system/,重命名为sshd2.service,文件内容如下[Unit]Description=OpenSSHserverdaemonDocumentation=man:sshd(8)man:sshd_config(5)After=network.targetsshd-keygen.serviceWants=sshd-keygen.service[Service]Type=notifyEnvironmentFile=/etc/sysconfig/sshdExecStart=/usr/sbin/sshd-D$OPTIONSExecReload=/bin/kill-HUP$MAINPIDKillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target由于需要重启新服务,ExecStart行应该被修改。读取新的配置文件sshd2_config,修改为ExecStart=/usr/sbin/sshd-D$OPTIONS-f/etc/ssh/sshd2_config2。进入/etc/ssh/,将sshd_config复制到sshd2_config,修改端口行Port88883运行命令systemctlreload重新加载配置4.运行命令systemctlstatussshd2.service查看状态5运行命令systemctlstartsshd2.service启动服务6.运行命令systemctlenablesshd2.service设置开机启动在本机登录sshfancy@ip-p8888即可登录注1,防火墙必须开放8888端口注2,官方建议用户新建的服务脚本应该存放在/etc/systemd/system/目录下。系统服务目录/usr/lib/systemd/system/下没有问题可以,看个人选择6.再举个例子,创建自己的服务1.在/root/bin/下创建shell脚本fancy_test.sh,修改其权限,chmodu+xfancy_test.sh,内容如下#!/bin/bashlogdate=$(date+%s)logdir="/root/log/"logname=fancy.${logdate}.log#echo$lognametouch${logdir}${logname}表示,运行对于这个服务,在/root/log/目录下创建一个日志文件2.在/etc/systemd/system/下创建一个启动脚本fancy_test.service,输入内容[Unit]Description=fancy_testserverdaemon[Service]Type=simpleExecStart=/root/bin/fancy_test.sh[安装]WantedBy=multi-user.target3。运行命令systemctlreload4。运行命令systemctlstartfancy_test.service5。此时你会看到在/root/log/目录下创建了一个日志文件注意我们的服务是最简单的,只执行几条命令,所以没有配置文件,也不会常驻内存。运行一次就会结束。以上是良序教程网为各位小伙伴分享的linux系统服务(systemctl的使用)以上是良序教程网为各位小伙伴分享的linux相关知识。