From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id B9C0E1FF0C0 for ; Wed, 21 Oct 2026 22:55:46 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 7271B21491; Wed, 21 Oct 2026 22:55:46 +0200 (CEST) From: Thomas Lamprecht To: pbs-devel@lists.proxmox.com Subject: [PATCH 5/7] client: job: ship systemd user unit for the scheduler Date: Wed, 14 Oct 2026 12:51:34 +0200 Message-ID: <20261014105208.2747208-6-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261014105208.2747208-1-t.lamprecht@proxmox.com> References: <20261014105208.2747208-1-t.lamprecht@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1792616142249 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.551 Adjusted score from AWL reputation of From: address DATE_IN_PAST_96_XX 2.07 Date: is 96 hours or more before Received: date DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: MFAILQUNUKSPE2X6JCOSKIFWN5LASF6H X-Message-ID-Hash: MFAILQUNUKSPE2X6JCOSKIFWN5LASF6H X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Not enabled on install, as a backup daemon only makes sense for users who configured a job. KillMode=mixed lets a stop wait for running backups, and restarts give up if startup keeps failing, for example because a scheduler already runs in a terminal. Signed-off-by: Thomas Lamprecht --- debian/proxmox-backup-client-static.install | 1 + debian/proxmox-backup-client.install | 1 + debian/rules | 4 ++++ etc/proxmox-backup-client-scheduler.service | 19 +++++++++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 etc/proxmox-backup-client-scheduler.service diff --git a/debian/proxmox-backup-client-static.install b/debian/proxmox-backup-client-static.install index 6a913b677..8a94e1c61 100644 --- a/debian/proxmox-backup-client-static.install +++ b/debian/proxmox-backup-client-static.install @@ -1,3 +1,4 @@ +etc/proxmox-backup-client-scheduler.service /usr/lib/systemd/user/ usr/share/man/man1/proxmox-backup-client.1 usr/share/man/man1/pxar.1 usr/share/zsh/vendor-completions/_proxmox-backup-client diff --git a/debian/proxmox-backup-client.install b/debian/proxmox-backup-client.install index 74b568f17..782f30f95 100644 --- a/debian/proxmox-backup-client.install +++ b/debian/proxmox-backup-client.install @@ -1,3 +1,4 @@ +etc/proxmox-backup-client-scheduler.service /usr/lib/systemd/user/ usr/bin/proxmox-backup-client usr/bin/pxar usr/share/man/man1/proxmox-backup-client.1 diff --git a/debian/rules b/debian/rules index ab48cce19..9affab277 100755 --- a/debian/rules +++ b/debian/rules @@ -64,6 +64,10 @@ override_dh_auto_install: mv debian/tmp/usr/bin/proxmox-backup-client-static debian/proxmox-backup-client-static/usr/bin/proxmox-backup-client mv debian/tmp/usr/bin/pxar-static debian/proxmox-backup-client-static/usr/bin/pxar +# the scheduler is only wanted by users who configured a backup job, so do not enable it for all +override_dh_installsystemduser: + dh_installsystemduser --no-enable + override_dh_installsystemd: dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer # note: we start/try-reload-restart services manually in postinst diff --git a/etc/proxmox-backup-client-scheduler.service b/etc/proxmox-backup-client-scheduler.service new file mode 100644 index 000000000..00151913b --- /dev/null +++ b/etc/proxmox-backup-client-scheduler.service @@ -0,0 +1,19 @@ +[Unit] +Description=Proxmox Backup Client Scheduler +Documentation=man:proxmox-backup-client(1) +# give up on a startup that keeps failing, rather than retry every 30 seconds forever +StartLimitIntervalSec=5min + +[Service] +Type=simple +ExecStart=/usr/bin/proxmox-backup-client job scheduler +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartSec=30 +# signal only the scheduler, which waits for the running backups +KillMode=mixed +# time for a running backup to finish on `systemctl --user stop` +TimeoutStopSec=30min + +[Install] +WantedBy=default.target -- 2.47.3