赞
踩
信创操作系统–统信UOS桌面版(使用Systemd管理系统服务)
安全中心是统信UOS预装的安全辅助应用,主要包括系统体检、病毒查杀、防火墙、自启动管理以及系统安全等功能,可以全面提升系统的安全性。
system是操作系统的管家,通过它可以快捷、方便的管理系统的各项功能。
Systemd是 Linux操作系统中最基础的组成部分,作为操作系统的第一个用户进程(PID1)运行并启动操作系统的其余部分,其主要作用是进行操作系统和服务管理。
Systemd 具有并行启动系统服务的功能,使用套接字和D-Bus激活来启动服务,按需启动、守护程序,使用Linux cgroups跟踪进程,维护安装和自动挂载点,以及实现精心设计的基于事务依赖关系的服务控制逻辑。
Systemd支持SysV和LSB 初始化脚本,并替代SysVinit。Systemd 的其他功能包括日志记录守护程序,用于控制基本系统配置,如主机名、日期、区域设置、已登录用户和正在运行的容器、虚拟机的列表、系统账户、运行时目录和设置等,也可用于管理简单网络的守护程序配置,如网络事件的同步,日志转发以及名称解析等
虽然systemd功能较强大,管理范围较宽广,但它的核心只有一个/bin/systemd。Linux内核启动后,它作为第一个被执行的用户进程,起到了承上启下的作用。当某个进程占用太多系统资源时,systemd有权执行(MOO killer)机制来杀死该进程,即彻底结束该进程,以此保护整个系统不会因资源耗尽而崩溃。
systemd最重要的功能就是对系统的服务管理,服务进程的启动、重启等都时由它控制的。如在准备搭建一个网站前,需在终端执行sudo apt install nginx命令安装NGINX(Web服务器),然后就可以用如下所示的命令来管理NGINX服务器。
*启动服务:sudo systectl start nginx.sercive*
*停止服务:sudo systectl stop niginx.service*
*重启服务:sudo systectl restart niginx.service*
*查看服务:sudo systemctl status nginx.service*
*开机启动服务:sudo systemctl enable nginx.service*
*禁止开机启动服务:sudo systemctl disable nginx.service*
在终端中执行如下命令可对计算机的电源进行管理。
重启:执行命令sudo systemctl reboot
关机:执行命令sudo systemctl poweroff
待机:执行命令sudo systemctl suspend
休眠:执行命令sudo systemctl hibernate
执行命令localectl可查询系统语言设置,如图1-6所示。
执行命令sudo localect set-locale LANG=zh_CN.utf8可设置系统语言为中文;
执行命令sudo localectl set-keymap zh_CN可设置系统键盘布局为中文。
执行timedatectl 可查看系统时区,如图1-7所示。
执行命令timedatectl list-timezone,可显示所有可用时区;
执行命令sudo timedatectl set-ntp false,可关闭网络同步时间服务;
执行命令sudo timedatectl set-timezone America/New_York,可设置系统时区。
当需要手动更改系统本地时间时,需要先手动关闭同步时间服务。
当某个用户登录操作系统后,systemd 会在内存开辟一块区域,叫作session,里面存放着这个用户登录后运行的进程。当用户注销后,session会被删除,内存会被回收。
执行命令loginctl list-sessions,列出当前session,如图1-8所示。
systemd允许同一用户在不同终端同时登录,但每次登录都会生成新的session,一个session的崩溃或者注销不会影响到另一个session,session之间有一定的隔离性。
执行命令loginctl list-users,即可列出当前登录用户,如图1-9所示。
当系统没能按照预期运行,出现应用程序无响应、卡顿或者崩溃的现象时,可以通过查看系统的各种日志来定位问题所在,然后通过修改代码或者修改配置等方式来解决。
在终端中执行命令sudo journalctl,然后输入斜杠【/】进入搜索模式;
输入关键词查找内核和应用错误的详细信息,并按【Enter】键进行搜索。按【PageUp】键和【PageDown】键进行翻页,或按【N】键搜索下一个匹配。
在终端中执行命今sudo apt install systemd-coredump安装systemd-coredump工具。当程序崩溃时,可能会产生core文件(一般用来调试代码bug),然后被systemd-coredump工具捕获,这样可以很方便地使用coredumpctl命令查看应用崩溃的信息。
执行命令sudo coredumpctl list可查看崩溃的进程列表,其中包含崩溃进程的PID值(进程ID,各进程的身份标识),如图1-10所示。
执行命令sudo coredumpctl info 796,可查看某个崩溃进程的详细信息,其中796值得是该进崩溃进程的PID值,如图1-11所示。
想进一步了解崩溃原因,可以进行调试。在终端中执行命令sudo coredumpctl debug 10914,系统默认调用GDB进行调试,可以使用bt命令查看堆栈信息,确定应用崩溃的原因,如图1-12所示。
在 system-journal之前,Linux系统上一般是使用rsyslog来记录系统日志和内核日志。日志一般放在/var/log/message目录下,可以使用cat、less或tail去读取日志。
执行命令sudo less /var/log/messages,可查看所有日志;
执行命令sudo less /var/log/syslog,可查看系统日志;
执行命令sudo less /var/log/kern.log,可查看内核日志;
执行命令sudo less /var/log/boot.log可查看启动日志;
执行命令sudo less /var/log/user.log可查看用户日志。
在系统运行的过程中,有时会遇到桌面崩溃、进程退出、桌面黑屏等情况,可以执行命令sudo less /var/log/Xorg.0.log查看桌面日志来定位问题。
有些问题,如磁盘损坏、内核崩溃、固件问题等,通过上文的方式均无法定位问题,需要以更加底层的方式去获取日志,此时就需要通过串口去获取固件、内核以及操作系统的日志。
制作成员: 郑伟钦
排版: 梁汉荣
初审: 蔡君贤
复审: 二月二
点击下方“正月十六工作室”查看更多学习资源
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。