💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## systemd 特性 1. 启动系统的过程中实现了并行启动 2. 由systemd所管理的服务可以实现按需激活 3. 支持系统服务状态快照 4. 可以定义程序之间依赖关系 ## unit介绍 unit的配置文件是uit的核心,在配置文件中主要包含 1. 需要管理服务或者程序 2. 服务或者程序需要监听的套接字 3. 保存的系统快照(就是制作快照的时候,系统中各个服务的状态) 4. 其他和init相关的配置 unit配置文件的位置 `/lib/systemd/system`         本地配置的系统单元 `/run/systemd/system`         运行时配置的系统单元 `/usr/lib/systemd/system`      第三方软件的系统单元(sshd,nginx..) > 注意:unit(单元)和init中的服务脚本类似,但是不相同 ## unit分类 ### 类型1: 1. service unit,这是服务类型的unit,该类unit后缀是 .service,比如nginx.service,通过这个nuit可以实现启动、关闭、查看状态等 2. 该类unit位于 /usr/lib/systemd/system 3. 注意:unit本质上来说并不是脚本,而仅仅是systemd一个配置文件,因此这个unit文件不具有执行权限,而且也无法执行 4. 启动服务的方式:通过让systemd去读取配置文件中的内容,完成nginx进程的启动 ### 类型2-8: 1. 类型2:device unit,这是设备unit,该类unit的后缀是.device,这类unit的作用是用来识别设备文件 2. 类型3:mount unit,后缀 .mount,用来实现挂载文件系统到指定的挂载点 3. 类型4:socket unit,后缀.socket,用来表示进程间通信的socket文件 4. 类型5:snapshot nuit:快照unit,后缀.snapshot, 用来管理快照 5. 类型6:target unit:目标unit,后缀是 .target,模拟centos5、6上的运行级别(主要是为了向后兼容) 6. 类型7:swap unit 7. 类型8:path unit ## systemctl使用 ### 1.查看激活的服务 ~~~ 1.查看当前系统中全部已经被激活的unit:systemctl list-units --type service 2.查看当前系统中全部的unit(包括未激活的):systemctl list-units --type service --all ~~~ ### 2.开机自启动和关闭 ~~~ 设置某个服务开机自启动:systemctl enable nginx.service 禁止某个服务开机自启动:systemctl disable nginx.service ~~~ > 设置开机自启动,其实就是在`/etc/systemd/system/multi-user.target.wants/`下创建执行`/usr/lib/systemd/system/`下的配置文件的软连接 ~~~ 查看当前系统中的全部unit的自动启动情况:systemctl list-unit-files ~~~ `disabled`:禁止开机自动启动 `enabled`:开机自动启动 `static`:该unit不能独立运行,是其他unit所依赖的 **表2:服务的启动、重启、停止等常用命令对比** | System V init命令 | systemctl命令 | 作用 | | --- | --- | --- | | service foo start | systemctl start foo.service | 启动服务 | | service foo restart | systemctl restart foo.service | 重启服务 | | service foo stop | systemctl stop foo.service | 停止服务 | | service foo reload | systemctl reload foo.service | 重新加载配置文件(不停止服务) | | service foo status | systemctl status foo.service | 查看服务状态 | **表3:设置服务开机启动、不启动等常用命令对比** | System V init命令 | systemctl命令 | 作用 | | --- | --- | --- | | chkconfig foo on | systemctl enable foo.service | 开机自动启动 | | chkconfig foo off | systemctl disable foo.service | 开机不自动启动 | | chkconfig foo | systemctl is-enabled foo.service | 查看服务是否为自动启动 | | chkconfig --list | systemctl list-unit-files | 查看各个服务的启动与禁用情况 | ### 3.系统管理相关命令 **1. hostnamectl命令用于查看当前主机的信息。** 显示当前主机的信息 `hostnamectl` 设置主机名。 `hostnamectl set-hostname xuad1` **2. localectl命令用于查看本地化设置。** 查看本地化设置 `localectl` 设置本地化参数。 ~~~ localectl set-locale LANG=zh_CN.UTF-8 localectl set-keymap zh_CN ~~~ **3. timedatectl命令用于查看当前系统时区设置。** 查看当前时区设置 `timedatectl` 显示所有可用的时区 `timedatectl list-timezones` 设置当前时区 ~~~ timedatectl set-timezone Asia/Shanghai timedatectl set-time YYYY-MM-DD timedatectl set-time HH:MM:SS ~~~ **4. loginctl命令用于查看当前登陆的用户。** 列出当前session `loginctl list-sessions` 列出当前登录用户 `loginctl list-users` 列出显示指定用户的信息 `loginctl show-user root`