文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux系统服务(systemctl)的使用

2024-12-03 18:00

关注

服务:常驻系统内存中的进程且可以提供一些系统和网络功能;现在最新的Linux系统都统一使用systemctl进行服务的管理。

1、运行级别的分类 runlevel

> 运行级别0:系统停机状态

> 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

> 运行级别2:多用户状态(没有NFS)

> 运行级别3:完全的多用户状态(有NFS)

> 运行级别4:系统未使用,保留

> 运行级别5:X11控制台

> 运行级别6:系统正常关闭并重启

2、管理服务 systemctl (root权限)

> systemctl [opt] xxx.service

> status 查看当前服务状态

> start 启动服务

> stop 关闭服务

> restart 重启服务

> enable 设置开机启动

> disable 设置开机不启动

> reload 后面不接具体服务名,重新加载配置文件

> mask 注销服务

> unmask 取消注销

3.一些常用命令 systemctl

4.system 服务相关的一些目录( Centos 环境,Debian 类的环境可能会有稍许不同)

/usr/lib/systemd/system/ 系统安装的软件默认启动脚本目录

/etc/systemd/system/ 用户根据自己需要建立的启动脚本目录

/etc/sysconfig/ 服务初始化选项目录

/var/lib/ 服务运行时产生的数据存储目录

/etc/xxx/ 各服务配置目录

5.结合一个例子来具体讲解,一台机开启两个ssh服务

我们最常使用的ssh服务,系统默认ssh服务22端口,我现在想再开一个ssh服务,端口8888

系统服务启动脚本 /usr/lib/systemd/system/sshd.service,将其复制到 /etc/systemd/system/ 下,并改名为 sshd2.service,文件内容如下

  1. [Unit] 
  2.  Description=OpenSSH server daemon 
  3.  Documentation=man:sshd(8) man:sshd_config(5) 
  4.  After=network.target sshd-keygen.service 
  5.  Wants=sshd-keygen.service 
  6.  
  7.  [Service] 
  8.  Type=notify 
  9.  EnvironmentFile=/etc/sysconfig/sshd 
  10.  ExecStart=/usr/sbin/sshd -D $OPTIONS 
  11.  ExecReload=/bin/kill -HUP $MAINPID 
  12.  KillMode=process 
  13.  Restart=on-failure 
  14.  RestartSec=42s 
  15.   
  16.  [Install] 
  17.  WantedBy=multi-user.target 

因为要重启一个新的服务,所以要修改一下ExecStart这一行,读取新的配置文件 sshd2_config,改为

 

  1. ExecStart=/usr/sbin/sshd -D $OPTIONS -f /etc/ssh/sshd2_config 

到 /etc/ssh/ 下,将 sshd_config 复制到 sshd2_config,并修改端口那一行

 

  1. Port 8888 

运行命令 systemctl reload 重新加载一下配置

运行命令 systemctl status sshd2.service 查看状态

5 运行命令 systemctl start sshd2.service 开启服务

运行命令 systemctl enable sshd2.service 设置开机启动

在另一台机器上登录 ssh fancy@ip -p8888 就可以登录了

6、我们再来举个例子,做一个自己的服务

在 /root/bin/ 下创建一个shell脚本 fancy_test.sh,并修改其权限,chmod u+x fancy_test.sh,内容如下

  1. #!/bin/bash 
  2. logdate=$(date +%s) 
  3. logdir="/root/log/" 
  4. logname=fancy.${logdate}.log 
  5. #echo $logname 
  6. touch ${logdir}${logname} 

意思是,运行该服务时,在 /root/log/ 目录下创建一个日志文件

在 /etc/systemd/system/ 下创建启动脚本 fancy_test.service,输入一下内容

  1. [Unit] 
  2. Description=fancy_test server daemon 
  3.  
  4. [Service] 
  5. Type=simple 
  6. ExecStart=/root/bin/fancy_test.sh 
  7.   
  8. [Install] 
  9. WantedBy=multi-user.target 

运行命令 systemctl reload

运行命令 systemctl start fancy_test.service

此时你会看到在 /root/log/ 目录下创建了一个日志文件

 

来源:良许Linux内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯