ITADN

niri is delayed from starting if network is unavailable

#210Closednickjj 创建于 2026-03-07
N
nickjjcommented
If my network connection is down after booting up, after logging in I always get this message: `graphical.target is queued for start, waiting for 60s...` **On my desktop**, with ethernet, if my power goes out and I reboot my machine it gets to the point where I can login before my router is ready. **On my laptop**, if I'm at a new location where wifi isn't configured, niri will be delayed for 1 minute before starting. **In both cases**, niri will eventually start once the network is available or that 60s timeout is reached. I am using uwsm to start niri, this runs in my zsh profile after logging in: ```sh if uwsm check may-start; then exec uwsm start -- niri.desktop; fi ``` This desktop entry was created by niri during installation: ``` $ cat /usr/share/wayland-sessions/niri.desktop [Desktop Entry] Name=Niri Comment=A scrollable-tiling Wayland compositor Exec=niri-session Type=Application DesktopNames=niri ``` Given niri is being managed by uwsm, I am guessing there is some network dependency on whatever systemd unit file is being created for niri by uwsm, or is that not the case? I did a little bit of poking around and found this, but it didn't seem to have much in it: ```sh $ cat /run/user/1000/systemd/user/wayland-wm@niri.desktop.service.d/50_custom.conf # injected by uwsm, do not edit [Unit] X-UWSMMark=niri.desktop Description=Main service for Niri, A scrollable-tiling Wayland compositor ``` I'm using vanilla Arch, here's dependencies for that target, `systemd-networkd.service` is in there: ``` $ systemctl list-dependencies graphical.target graphical.target ○ ├─display-manager.service ● └─multi-user.target ● ├─dbus-broker.service ● ├─docker.service ● ├─lactd.service ● ├─systemd-ask-password-wall.path ● ├─systemd-logind.service ● ├─systemd-networkd.service ● ├─systemd-user-sessions.service ● ├─basic.target ● │ ├─-.mount ● │ ├─tmp.mount ● │ ├─paths.target ● │ ├─slices.target ● │ │ ├─-.slice ● │ │ └─system.slice ● │ ├─sockets.target ● │ │ ├─dbus.socket ● │ │ ├─dirmngr@etc-pacman.d-gnupg.socket ● │ │ ├─dm-event.socket ● │ │ ├─gpg-agent-browser@etc-pacman.d-gnupg.socket ● │ │ ├─gpg-agent-extra@etc-pacman.d-gnupg.socket ● │ │ ├─gpg-agent-ssh@etc-pacman.d-gnupg.socket ● │ │ ├─gpg-agent@etc-pacman.d-gnupg.socket ● │ │ ├─keyboxd@etc-pacman.d-gnupg.socket ● │ │ ├─polkit-agent-helper.socket ● │ │ ├─sshd-unix-local.socket ● │ │ ├─systemd-ask-password.socket ● │ │ ├─systemd-bootctl.socket ● │ │ ├─systemd-coredump.socket ● │ │ ├─systemd-creds.socket ● │ │ ├─systemd-factory-reset.socket ● │ │ ├─systemd-hostnamed.socket ● │ │ ├─systemd-importd.socket ● │ │ ├─systemd-journald-dev-log.socket ● │ │ ├─systemd-journald.socket ● │ │ ├─systemd-logind-varlink.socket ● │ │ ├─systemd-machined.socket ● │ │ ├─systemd-mute-console.socket ● │ │ ├─systemd-networkd-resolve-hook.socket ● │ │ ├─systemd-networkd-varlink.socket ● │ │ ├─systemd-networkd.socket ○ │ │ ├─systemd-pcrextend.socket ○ │ │ ├─systemd-pcrlock.socket ● │ │ ├─systemd-repart.socket ● │ │ ├─systemd-resolved-monitor.socket ● │ │ ├─systemd-resolved-varlink.socket ● │ │ ├─systemd-sysext.socket ● │ │ ├─systemd-udevd-control.socket ● │ │ ├─systemd-udevd-kernel.socket ● │ │ ├─systemd-udevd-varlink.socket ● │ │ └─systemd-userdbd.socket ● │ ├─sysinit.target ● │ │ ├─dev-hugepages.mount ● │ │ ├─dev-mqueue.mount ● │ │ ├─kmod-static-nodes.service ● │ │ ├─ldconfig.service ● │ │ ├─proc-sys-fs-binfmt_misc.automount ● │ │ ├─sys-fs-fuse-connections.mount ● │ │ ├─sys-kernel-config.mount ● │ │ ├─sys-kernel-debug.mount ● │ │ ├─sys-kernel-tracing.mount ● │ │ ├─systemd-ask-password-console.path ○ │ │ ├─systemd-binfmt.service ● │ │ ├─systemd-boot-random-seed.service ○ │ │ ├─systemd-firstboot.service ○ │ │ ├─systemd-hibernate-clear.service ● │ │ ├─systemd-hwdb-update.service ● │ │ ├─systemd-journal-catalog-update.service ● │ │ ├─systemd-journal-flush.service ● │ │ ├─systemd-journald.service ○ │ │ ├─systemd-machine-id-commit.service ● │ │ ├─systemd-modules-load.service ● │ │ ├─systemd-network-generator.service ○ │ │ ├─systemd-pcrmachine.service ○ │ │ ├─systemd-pcrnvdone.service ○ │ │ ├─systemd-pcrphase-sysinit.service ○ │ │ ├─systemd-pcrphase.service ○ │ │ ├─systemd-pcrproduct.service ● │ │ ├─systemd-random-seed.service ○ │ │ ├─systemd-repart.service ● │ │ ├─systemd-resolved.service ● │ │ ├─systemd-sysctl.service ● │ │ ├─systemd-sysusers.service ● │ │ ├─systemd-timesyncd.service ● │ │ ├─systemd-tmpfiles-setup-dev-early.service ● │ │ ├─systemd-tmpfiles-setup-dev.service ● │ │ ├─systemd-tmpfiles-setup.service ○ │ │ ├─systemd-tpm2-setup-early.service ○ │ │ ├─systemd-tpm2-setup.service ● │ │ ├─systemd-udev-trigger.service ● │ │ ├─systemd-udevd.service ● │ │ ├─systemd-update-done.service ● │ │ ├─systemd-update-utmp.service ● │ │ ├─cryptsetup.target ● │ │ ├─imports.target ● │ │ ├─integritysetup.target ● │ │ ├─local-fs.target ● │ │ │ ├─-.mount ● │ │ │ ├─boot.mount ● │ │ │ ├─data-backup.mount ● │ │ │ ├─data-storage.mount ○ │ │ │ ├─systemd-fsck-root.service ● │ │ │ ├─systemd-remount-fs.service ● │ │ │ └─tmp.mount ● │ │ ├─swap.target ● │ │ │ └─dev-zram0.swap ● │ │ └─veritysetup.target ● │ └─timers.target ● │ ├─archlinux-keyring-wkd-sync.timer ● │ ├─fstrim.timer ● │ ├─man-db.timer ● │ ├─paccache.timer ● │ ├─shadow.timer ● │ └─systemd-tmpfiles-clean.timer ● ├─getty.target ● │ └─getty@tty1.service ● └─remote-fs.target ○ └─var-lib-machines.mount ```
关闭于 2026-03-07 8 条评论