Выполните команду перед запуском службы.
Проверьте состояние службы, которая будет использоваться в качестве примера.
$ systemctl status gdm
● gdm.service - GNOME Display Manager Loaded: loaded (/usr/lib/systemd/system/gdm.service; static) Active: active (running) since Mon 2024-11-18 23:27:08 CET; 8min ago Main PID: 1799 (gdm3) Tasks: 4 (limit: 9324) Memory: 6.4M (peak: 8.7M) CPU: 82ms CGroup: /system.slice/gdm.service └─1799 /usr/sbin/gdm3 Nov 18 23:27:08 desktop systemd[1]: Starting gdm.service - GNOME Display Manager... Nov 18 23:27:08 desktop systemd[1]: Started gdm.service - GNOME Display Manager. Nov 18 23:27:08 desktop gdm-launch-environment][1806]: pam_unix(gdm-launch-environment:session): session open> Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: unable to locate daemon control file Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: stashed password to try later in open session Nov 18 23:27:15 desktop gdm-password][2355]: pam_unix(gdm-password:session): session opened for user milosz(u> Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: unlocked login keyring Nov 18 23:27:17 desktop gdm3[1799]: Gdm: Child process -1842 was already dead.
Проверьте файл конфигурации, который будет изменен перед запуском службы.
$ cat /etc/gdm3/custom.conf
# GDM configuration storage # # See /usr/share/gdm/gdm.schemas for a list of available options. [daemon] # Uncomment the line below to force the login screen to use Xorg #WaylandEnable=false # Enabling automatic login # AutomaticLoginEnable = true # AutomaticLogin = user1 # Enabling timed login # TimedLoginEnable = true # TimedLogin = user1 # TimedLoginDelay = 10 [security] [xdmcp] [chooser] [debug] # Uncomment the line below to turn on debugging # More verbose logs # Additionally lets the X server dump core if it crashes #Enable=true
Создайте каталог переопределения служб.
$ sudo mkdir /etc/systemd/system/gdm.service.d
Создайте переопределение службы, которое изменит файл конфигурации.
$ echo -e "[Service]\nExecStartPre=/bin/sed -i 's/AutomaticLoginEnable=.*/AutomaticLoginEnable=false/g' /etc/gdm3/custom.conf\nExecStartPre=/bin/sed -i '/^AutomaticLogin=/d' /etc/gdm3/custom.conf" | \ sudo tee /etc/systemd/system/gdm.service.d/disable_automatic_login.conf
[Service] ExecStartPre=/bin/sed -i 's/AutomaticLoginEnable=.*/AutomaticLoginEnable=false/g' /etc/gdm3/custom.conf ExecStartPre=/bin/sed -i '/^AutomaticLogin=/d' /etc/gdm3/custom.conf
Перезагрузите конфигурацию systemd.
$ sudo systemctl daemon-reload
Проверьте состояние службы.
$ systemctl status gdm
● gdm.service - GNOME Display Manager Loaded: loaded (/usr/lib/systemd/system/gdm.service; static) Drop-In: /etc/systemd/system/gdm.service.d └─disable_automatic_login.conf Active: active (running) since Mon 2024-11-18 23:27:08 CET; 14min ago Main PID: 1799 (gdm3) Tasks: 4 (limit: 9324) Memory: 6.3M (peak: 8.7M) CPU: 82ms CGroup: /system.slice/gdm.service └─1799 /usr/sbin/gdm3 Nov 18 23:27:08 desktop systemd[1]: Starting gdm.service - GNOME Display Manager... Nov 18 23:27:08 desktop systemd[1]: Started gdm.service - GNOME Display Manager. Nov 18 23:27:08 desktop gdm-launch-environment][1806]: pam_unix(gdm-launch-environment:session): session open> Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: unable to locate daemon control file Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: stashed password to try later in open session Nov 18 23:27:15 desktop gdm-password][2355]: pam_unix(gdm-password:session): session opened for user milosz(u> Nov 18 23:27:15 desktop gdm-password][2355]: gkr-pam: unlocked login keyring Nov 18 23:27:17 desktop gdm3[1799]: Gdm: Child process -1842 was already dead.
Изменение файла конфигурации.
Проверьте файл конфигурации.
$ cat /etc/gdm3/custom.conf
# GDM configuration storage # # See /usr/share/gdm/gdm.schemas for a list of available options. [daemon] AutomaticLoginEnable=True AutomaticLogin=milosz # Uncomment the line below to force the login screen to use Xorg #WaylandEnable=false # Enabling automatic login # AutomaticLoginEnable = true # AutomaticLogin = user1 # Enabling timed login # TimedLoginEnable = true # TimedLogin = user1 # TimedLoginDelay = 10 [security] [xdmcp] [chooser] [debug] # Uncomment the line below to turn on debugging # More verbose logs # Additionally lets the X server dump core if it crashes #Enable=true
Перезапустите операционную систему или службу, которая используется в этом примере.
$ sudo systemctl restart gdm
Просмотрите файл конфигурации.
$ cat /etc/gdm3/custom.conf
# GDM configuration storage # # See /usr/share/gdm/gdm.schemas for a list of available options. [daemon] AutomaticLoginEnable=false # Uncomment the line below to force the login screen to use Xorg #WaylandEnable=false # Enabling automatic login # AutomaticLoginEnable = true # AutomaticLogin = user1 # Enabling timed login # TimedLoginEnable = true # TimedLogin = user1 # TimedLoginDelay = 10 [security] [xdmcp] [chooser] [debug] # Uncomment the line below to turn on debugging # More verbose logs # Additionally lets the X server dump core if it crashes #Enable=true
- 🐧 Как запустить службы systemd при загрузке системы
- 🐳 Автоматический запуск Docker контейнера
- 🐧 Как запускать команды Bash в фоновом режиме в Linux