Table of Contents

, , , , , , ,

Nextcloud Desktop as a user service with systemd

Since quite some time I am annoyed by the Nextcloud client starting before the internet connection becomes available. That leads to a situation in which the Nextcloud Desktop Client presents a browser window with a login mask because it assumes it is disconnected.

My approach will start and manage the Nextcloud Desktop Client as a systemd user service as soon as a network connection becomes ready.

This is working on openSUSE Tumbleweed with KDE as of 2021/10/13. On other operating systems your mileage may vary.

KDE Session Management, Autostart

Wait System Service

Check if the correct oneshot “wait” system service is enabled (NetworkManager in my case).

systemctl is-enabled NetworkManager-wait-online.service systemd-networkd-wait-online.service

enabled
Failed to get unit file state for systemd-networkd-wait-online.service: No such file or directory

Systemd User Service

# as user
mkdir -pv ~/.config/systemd/user/
vim ~/.config/systemd/user/nextcloud-desktop.service
[Unit]
Description=Nextcloud Desktop Client
After=network-online.target
Wants=network-online.target NetworkManager-wait-online.service

[Service]
Type=simple      
StandardOutput=journal
ExecStart=/usr/bin/nextcloud
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535:65535

[Install]
WantedBy=default.target

enable the service

systemctl --user enable nextcloud-desktop.service

start the service

systemctl --user start nextcloud-desktop.service

check that the service is running

systemctl --user status nextcloud-desktop.service

—- ~~DISCUSSION~~