Greetd doesn't work

Hi,

I tried setting up greetd with tuigreet for my sway installation. I started with a network installation iso, using a basic fedora environment with the bare minimum installed.

I installed the greetd and tuigreet packages. Then I enables the systemd service of greetd. If I start the service myself, while being logging in with my user account, greetd and tuigreet starts correctly. But the service is not started by systemd while booting the system.

Does anyone have an idea of what I need to do?

Here’s the config.toml of greetd.

[terminal]
vt = 1

[default_session]
command = “tuigreet --cmd sway-run.sh --time --asterisks”
user = “greetd”

The sway-run script is the same provided in the greetd repository with systemd logging enabled.

I already tried to disable or set permissive for SELinux.

What does systemctl status greetd tell you?

Loaded and enabled. It also says

Drop In: 10-timeout-abort.conf, 50-keep-warm.conf
Active: inactive (dead)

Edit:

If I log in with my wheel group user, do systemctl start greetd.service and provide my sudo password it works properly.

Please show all the status output.
Edit: reboot then share the output of the status please.

Here’s the boot journal.

Here’s the status output directly after reboot and logging into the basic bash shell:

○ greetd.service - Greeter daemon
     Loaded: loaded (/usr/lib/systemd/system/greetd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf, 50-keep-warm.conf
     Active: inactive (dead)

I expect there to be alot more output from systemctl status.
For example details of the process exiting.

Surely you are seeing more then the lines you are posting here?

It’s everything from

journalctl -b

There is nothing installed besides the base fedora packages needed for boot and greetd/tuigreet.

I did not ask you for journalctl output…

What is the output of systemctl status greetd.service (I assume your service is called greetd.service, if not use its name).

Also what is the output of systemctl cat greetd.service?

I already shared the output of

systemctl status greetd.service

inside the post that also contains the journal entries. There is nothing else in there.

I’ll post the cat stuff tomorrow as soon as I’m back using the PC.

Overall I already checked all the stuff you are asking about, which is why I’m asking for help here. The journal is especially interesting, because there is no mention of greetd.service, even though it is enabled (at least that’s what every systemd output tells me).

Here is the cat output. Maybe the getty tty service is getting in the way?

# /usr/lib/systemd/system/greetd.service
[Unit]
Description=Greeter daemon
After=systemd-user-sessions.service plymouth-quit-wait.service
After=getty@tty1.service
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=greetd
IgnoreSIGPIPE=no
SendSIGHUP=yes
TimeoutStopSec=30s
KeyringMode=shared
Restart=always
RestartSec=1
StartLimitBurst=5
StartLimitInterval=30

[Install]
Alias=display-manager.service

# /usr/lib/systemd/system/service.d/10-timeout-abort.conf
# This file is part of the systemd package.
# See https://fedoraproject.org/wiki/Changes/Shorter_Shutdown_Timer.
#
# To facilitate debugging when a service fails to stop cleanly,
# TimeoutStopFailureMode=abort is set to "crash" services that fail to stop in
# the time allotted. This will cause the service to be terminated with SIGABRT
# and a coredump to be generated.
#
# To undo this configuration change, create a mask file:
#   sudo mkdir -p /etc/systemd/system/service.d
#   sudo ln -sv /dev/null /etc/systemd/system/service.d/10-timeout-abort.conf

[Service]
TimeoutStopFailureMode=abort

# /usr/lib/systemd/system/service.d/50-keep-warm.conf
# Disable freezing of user sessions to work around kernel bugs.
# See https://bugzilla.redhat.com/show_bug.cgi?id=2321268
[Service]
Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=0

I would always use the absolute path to the greetd.

Odd the output shared is not what I typically see.

I have to assume that greetd is not started on a reboot.
Make sure its Wanted by the default systemd target, often multi-user.target.

Sadly those changes don’t do anything. I tried greetd on another PC and it also doesn’t work. I’ll just create a bug report for this package later today. There seems to be a problem with its default settings after package installation.