Skip to main content
Solved

Veeam v13 Appliance – Automatically shut down after backup job completes?

  • July 20, 2026
  • 6 comments
  • 51 views

Forum|alt.badge.img+1

Hi everyone,

We're currently using the new Veeam Backup & Replication v13 Appliance and have a question regarding post-backup automation.

In our previous Windows-based Veeam installation, we had a scheduled task that would automatically shut down the backup server after the backup job had completed successfully. This worked well for our 3-2-1 backup strategy, as the backup server only needed to be online during the backup window.

After migrating to the v13 Appliance, we can't seem to find a similar option or supported method to automatically power off the appliance once all backup jobs have finished.

Has anyone implemented this on the v13 Appliance? Is there a built-in feature, or is there a recommended approach for scheduling an automatic shutdown after all backup jobs have completed?

Any suggestions or best practices would be appreciated.

Best answer by VEEAM_Legend

got this sorted, sharing in case it helps someone else

Turned out to be more interesting than a simple permissions issue, so documenting the full root cause here.

Setup: Backup Copy job on a Veeam Software Appliance (Rocky Linux, v13.0.2.29), post-job script configured via Advanced Settings → Scripts to run systemctl poweroff after the job completes.

Symptom: Script fires (confirmed in the job log — "Running post-job script" → "Executing command"), but always exits with code 1. Appliance never powers off.

What it wasn't:

  • Not file permissions — script is freshly chmod +x'd by Veeam on every run with a unique temp filename.
  • Not SELinux — ausearch -m avc showed zero denials.
  • Not systemd unit sandboxing on veeambackupsvc.service — no ProtectSystem/NoNewPrivileges/etc. set.
  • Not the -i flag — systemctl poweroff -i (needed since there are usually active sessions/inhibitors on the appliance) worked fine when run manually as the same user.

What it actually was: Veeam executes post-job scripts inside an isolated sandbox — separate PID/mount/UTS/IPC/user/cgroup namespaces, running as a dedicated veeam-usr-scriptexecutor account (only the network namespace is shared with the host). Confirmed by having the script dump its own execution context (/proc/self/ns/*, plus stderr) to a log file:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

Inside that sandbox there's no systemd/D-Bus to talk to, so systemctl poweroff — or any systemctl command — can never succeed from a post-job script on this appliance, regardless of user, flags, or permissions. Seems like a deliberate isolation boundary on Veeam's part, not a bug, but I couldn't find it documented anywhere.

The fix: don't try to control the host from inside the sandbox — signal it instead. The sandbox does share the script's own directory with the real host filesystem, so:

  1. Post-job script just touches a flag file (no systemd needed for this):
#!/bin/bash
touch /var/lib/veeam/scripts/sandbox/POWEROFF_REQUESTED
  1. A small watcher script on the real host checks for that flag and does the actual poweroff:
#!/bin/bash
FLAG=/var/lib/veeam/scripts/sandbox/POWEROFF_REQUESTED
if [ -f "$FLAG" ]; then
rm -f "$FLAG"
systemctl poweroff -i
fi
  1. Cron on the host polls every minute:
* * * * * /usr/local/bin/veeam-poweroff-watcher.sh

Cron isn't part of Veeam's execution context, so it runs completely outside the sandbox — the actual systemctl poweroff -i executes as real root on the real host. Worst-case delay is under a minute, which is a non-issue for a poweroff-after-backup use case.

Also worth noting for anyone hitting the same thing on a continuous ("Any time") copy schedule: post-job scripts only fire on a session close, and continuous mode doesn't really produce discrete closes — switch to a scheduled window ("During the following time periods only") if you want the script to fire predictably.

Tested end-to-end and confirmed working — appliance now powers itself off automatically once the Backup Copy job finishes, 

Hope this saves someone else the same evening I just had.

6 comments

coolsport00
Forum|alt.badge.img+23
  • Veeam Legend
  • July 20, 2026

@VEEAM_Legend - your best bet is to contact Support. If your VBR is a VM, you could schedule a task in VMW to power down the VM; if it’s a physical box, you could send a power down cmd to it via iLO/iDRAC I’m sure...some kind of hardware cmd should do the trick. Other than that I’m not sure how you can achieve what you want.


Chris.Childerhose
Forum|alt.badge.img+22

Never tried this with the VSA but agree with Shane about contacting support to get advice on how best to accomplish this.  You also asked this previously for Windows as well so I assume the answer will be similar or slightly different for VSA - https://community.veeam.com/discussion-boards-66/query-setting-up-automatic-power-off-after-veeam-backup-completion-6069

 


Forum|alt.badge.img+3
  • Veeam Product Management
  • July 21, 2026

Hi all, 

Support can only help with documented and existing features, architectural design questions like this are outside the scope of Veeam Support.

@VEEAM_Legend 

You would need to control this outside of the VSA -- it is unsupported to modify the Appliance (Software or Infrastructure) in any way, including adding cronjobs through shell / ssh.

Depending on how you have it deployed (VM vs physical server), configure a scheduled task to shut down the VM / send shutdown command to the physical server over some control plane. 

We do have some plans to expose Host Management Console operations programmatically, but nothing for the immediate future.


Forum|alt.badge.img+1
  • Author
  • Comes here often
  • Answer
  • July 22, 2026

got this sorted, sharing in case it helps someone else

Turned out to be more interesting than a simple permissions issue, so documenting the full root cause here.

Setup: Backup Copy job on a Veeam Software Appliance (Rocky Linux, v13.0.2.29), post-job script configured via Advanced Settings → Scripts to run systemctl poweroff after the job completes.

Symptom: Script fires (confirmed in the job log — "Running post-job script" → "Executing command"), but always exits with code 1. Appliance never powers off.

What it wasn't:

  • Not file permissions — script is freshly chmod +x'd by Veeam on every run with a unique temp filename.
  • Not SELinux — ausearch -m avc showed zero denials.
  • Not systemd unit sandboxing on veeambackupsvc.service — no ProtectSystem/NoNewPrivileges/etc. set.
  • Not the -i flag — systemctl poweroff -i (needed since there are usually active sessions/inhibitors on the appliance) worked fine when run manually as the same user.

What it actually was: Veeam executes post-job scripts inside an isolated sandbox — separate PID/mount/UTS/IPC/user/cgroup namespaces, running as a dedicated veeam-usr-scriptexecutor account (only the network namespace is shared with the host). Confirmed by having the script dump its own execution context (/proc/self/ns/*, plus stderr) to a log file:

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

Inside that sandbox there's no systemd/D-Bus to talk to, so systemctl poweroff — or any systemctl command — can never succeed from a post-job script on this appliance, regardless of user, flags, or permissions. Seems like a deliberate isolation boundary on Veeam's part, not a bug, but I couldn't find it documented anywhere.

The fix: don't try to control the host from inside the sandbox — signal it instead. The sandbox does share the script's own directory with the real host filesystem, so:

  1. Post-job script just touches a flag file (no systemd needed for this):
#!/bin/bash
touch /var/lib/veeam/scripts/sandbox/POWEROFF_REQUESTED
  1. A small watcher script on the real host checks for that flag and does the actual poweroff:
#!/bin/bash
FLAG=/var/lib/veeam/scripts/sandbox/POWEROFF_REQUESTED
if [ -f "$FLAG" ]; then
rm -f "$FLAG"
systemctl poweroff -i
fi
  1. Cron on the host polls every minute:
* * * * * /usr/local/bin/veeam-poweroff-watcher.sh

Cron isn't part of Veeam's execution context, so it runs completely outside the sandbox — the actual systemctl poweroff -i executes as real root on the real host. Worst-case delay is under a minute, which is a non-issue for a poweroff-after-backup use case.

Also worth noting for anyone hitting the same thing on a continuous ("Any time") copy schedule: post-job scripts only fire on a session close, and continuous mode doesn't really produce discrete closes — switch to a scheduled window ("During the following time periods only") if you want the script to fire predictably.

Tested end-to-end and confirmed working — appliance now powers itself off automatically once the Backup Copy job finishes, 

Hope this saves someone else the same evening I just had.


Chris.Childerhose
Forum|alt.badge.img+22

Great to hear you got things working and thanks for sharing the resolution.


coolsport00
Forum|alt.badge.img+23
  • Veeam Legend
  • July 22, 2026

Great ​@VEEAM_Legend ...glad you got it sorted & working!