| 一、systemd Unit服务解析[Unit]Description=GNOME Display Manager
 
 
 Conflicts=getty@tty1.service
 After=getty@tty1.service
 
 
 Conflicts=plymouth-quit.service
 After=plymouth-quit.service
 
 
 
 
 
 After=rc-local.service plymouth-start.service systemd-user-sessions.service
 
 
 
 OnFailure=plymouth-quit.service
 
 [Service]
 ExecStartPre=/usr/share/gdm/generate-config
 ExecStart=/usr/sbin/gdm3
 KillMode=mixed
 Restart=always
 RestartSec=1s
 IgnoreSIGPIPE=no
 BusName=org.gnome.DisplayManager
 StandardOutput=syslog
 StandardError=inherit
 EnvironmentFile=-/etc/default/locale
 ExecReload=/usr/share/gdm/generate-config
 ExecReload=/bin/kill -SIGHUP $MAINPID
 KeyringMode=shared
 ExecStartPre=/usr/lib/gdm3/gdm-wait-for-drm
 StandardOutput指令定义服务的标准输出(stdout)输出位置。可选值有inherit、null、journal、syslog、kmsg、journal+console、syslog+console和kmsg+console,具体含义如下:
 inherit:输出到父进程的标准输出(默认)。
null:将标准输出重定向到/dev/null。
journal:输出到systemd-journald。
syslog:输出到系统日志。
kmsg:输出到内核消息缓冲区。
journal+console:同时输出到systemd-journald和控制台。
syslog+console:同时输出到系统日志和控制台。
kmsg+console:同时输出到内核消息缓冲区和控制台。
 EnvironmentFile:EnvironmentFile指令定义从文件中加载环境变量。此文件通常包含一组key=value形式的环境变量,每行一个。在服务启动时,这些环境变量将被加载到服务的环境中。
 仔细看可以发现该模块没有Insatll段,这一段的内容是描述启动约束的,有三种: WantedBy:systemctl enable时符号链接会放入会放入 /etc/systemd/system 目录下面以 <Target 名> + .wants 后缀构成的子目录中,如 “/etc/systemd/system/multi-user.target.wants/“,RequiredBy与WantedBy的作用类似,只不过符号链接会放入 /etc/systemd/system 目录下面以 <Target 名> + .required 后缀构成的子目录中。
Also:当前 Unit enable/disable 时,同时 enable/disable 的其他 Unit。
Alias:当前 Unit 可用于启动的别名。
 从上面可以看出,systemd配置的自启动服务其实就是在/etc/systemd/system/目录及.wanys目录下创建符号链接。 二、调试gdm服务相关命令gdm服务默认是自启的,一旦关闭,就会出现"卡在logo界面"的现象,实际上如果连接串口会发现系统并未卡死,这时候就可以怀疑是否是gdm没有启动导致登录界面及之后的gnome没有显示在屏幕端。 dma-pl330 fea30000.dma-controller: fill_queue:2184 Bad Desc(3)
 
 systemctl list-unit-files [ | grep 服务名]
 systemctl is-enabled
 
 systemctl disable gdm
 
 systemctl enable gdm
 
 systemctl start/stop/restart gdm
 
 systemctl status gdm:wq
 journalctl -b -u gdm
 
 |