TrueNAS Community 25.10.3.1 | Cron Shutdown will nicht

RolandR88

Lieutenant
Registriert
Jan. 2007
Beiträge
799
Hallo Leute,

ich versuche seit Monaten ein Cronjob für den täglichen Shutdown meines Homeservers hinzubekommen.
Es läuft TrueNAS Community 25.10.3.1 und versucht habe ich schon:
  • /sbin/shutdown -h now
  • /sbin/shutdown -p now
  • /sbin/poweroff
  • systemctl poweroff
  • midclt call system.shutdown
  • /usr/bin/midclt call system.shutdown
  • midclt call system.shutdown "schlussjetzt"
  • /usr/bin/midclt call system.Shutdown"schlussjetzt"

Egal was ich versuche. Die Commands funktionieren solange ich angemeldet bin bzw. eine user session da ist (+3 Minuten als Test).
Aber sobald ich dann 01:00 Uhr in der Früh eingebe (es kommt dann ein Wake aus dem BIOS am Folgetag) dann passiert nichts bzw. im besten Fall startet sich der NAS sofort wieder.

Kann mir da jemand helfen?
Vielen Dank im Voraus!
 
Das war bei mir auch ein endloses Gefrickel, auch um Wake on Lan zum laufen zu bekommen. Shutdown hat meine ich mit
Code:
su /usr/bin/midclt call system.shutdown
hat es geklappt.Du musst es als root ausführen.
 
Zuletzt bearbeitet:
RolandR88 schrieb:
/sbin/shutdown -h now
Hast Du mal geschaut, ob der Befehl shutdown überhaupt in dem Pfad ist?
Ich würde mal denken, der ist eher unter /usr/sbin/

Ein Posting im TrueNAS-Forum stützt diese Vermutung.

Genereller Tipp:
Wenn man sich nicht sicher ist, in welchem Pfad ein Programm ist, kann man das Kommandozeilentool which benutzen.
Beispiel: which shutdown

RolandR88 schrieb:
Die Commands funktionieren solange ich angemeldet bin
Ein häufiges Problem ist, das man im Login-Environment die Umgebungsvariable PATH umfangreicher ist als bei CRON bzw Ausführung des CRON-Jobs.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Banned
DFFVB schrieb:
Das war bei mir auch ein endloses Gefrickel, auch um Wake on Lan zum laufen zu bekommen. Shutdown hat meine ich mit
Code:
su /usr/bin/midclt call system.shutdown
hat es geklappt.Du musst es als root ausführen.
Danke, das hatte ich noch nicht. Ist eingestellt. Mal sehen was heute Nacht passt. Vielen Dank!
Blutomen schrieb:
Schonmal mit Log probiert?
Dann kannst ja sehen was los ist und warum der Befehl nicht lief.
Ja, hilft aber nur bedingt, weil bei einigen Konstellationen der shutdown akzeptiert wird, nur der NAS dann sofort wieder bootet.
 
andy_m4 schrieb:
Hast Du mal geschaut, ob der Befehl shutdown überhaupt in dem Pfad ist?
Ich würde mal denken, der ist eher unter /usr/sbin/

Ein Posting im TrueNAS-Forum stützt diese Vermutung.

Genereller Tipp:
Wenn man sich nicht sicher ist, in welchem Pfad ein Programm ist, kann man das Kommandozeilentool which benutzen.
Beispiel: which shutdown


Ein häufiges Problem ist, das man im Login-Environment die Umgebungsvariable PATH umfangreicher ist als bei CRON bzw Ausführung des CRON-Jobs.
Also, ich habe jetzt noch versucht:
which shutdown
/usr/sbin/shutdown

Darauf basierend wäre der CMD
Code:
/usr/bin/midclt call system.shutdown "Cron Shutdown"
Test funktioniert, aber dann, scheinbar sobald eine aktive Session endet, passiert nichts:
1779383509656.png


@DFFVB deinen CMD kann ich nicht ausführen, wenn ich ihn in CronJobs unter Advanced Settings eingebe. Vielleicht unter crontab?
Code:
su /usr/bin/midclt call system.shutdown
1779383672572.png


Vielleicht via crontab?
1779383909409.png
 
Zuletzt bearbeitet:
Danke @andy_m4 hat aber leider auch nicht funktioniert.
Heute Nacht war ein Shutdown der im Log angezeigt wird, aber der Server läuft einfach weiter:

Code:
0 1 * * * /usr/bin/midclt call system.shutdown "work is done"
1779427799311.png


Code:
/usr/sbin/shutdown -P
now unter Cronjobs in Advanced Settings wirkt überhaupt nicht. Ich habe jetzt noch versucht den CMD direkt in crontab einzutragen...
 
@andy_m4 Die Alternative wäre für mich in TrueNAS unter Advanced > CronJobs.
Habe es direkt in crontab eingetragen, aber es passiert leider nichts. Kein Eintrag im Audit/Log, habs grad nochmals versucht.
Bildschirmfoto 2026-05-23 um 09.11.02.png

Edit: Ich glaube das Problem ist, dass ich als truenas_admin keinen Cmd als Root ausführen kann.
Edit2: Problem ist gelöst. Ich hatte jeweils ohne sudo -i in den crontab geschrieben, damit wurden credentials gefordert. jetzt läufts mit 0 1 * * * /usr/bin/systemctl poweroff
 
Zuletzt bearbeitet:
@RolandR88 Ich glaube, was ich damals auch mal getestet hab: Ein Post-Init script, dass den Rechne reinfach in x Sekunden wieder runterfährt...
 
Also das Thema ist echt einfach komplett frustrierend.

Wie geplant führt er den CMD um 01:00 Uhr aus - aber es passiert einfach nichts... die Kiste läuft einfach weiter.

Code:
Success: True
Audit Msg ID Str: audit(1779750001.529:453)
Proctitle: /usr/bin/systemctl poweroff
Syscall:
  Success: True
  Exit: 0
  Ppid: 586229
  Pid: 586230
  Auid: root
  Uid: root
  Gid: root
  Euid: 0
  Suid: 0
  Fsuid: 0
  Egid: 0
  Sgid: 0
  Fsgid: 0
  Tty: Null
  Ses: 30
  Key: escalation
  Syscall: execve
Cwd: /root
Paths:
  - Name: /usr/bin/systemctl
    Inode: 1210
    Dev: '00:23'
    Mode: '0100755'
    Ouid: 0
    Ogid: 0
    Rdev: '00:00'
  - Name: /usr/bin/systemctl
    Inode: 1210
    Dev: '00:23'
    Mode: '0100755'
    Ouid: 0
    Ogid: 0
    Rdev: '00:00'
  - Name: /lib64/ld-linux-x86-64.so.2
    Inode: 45412
    Dev: '00:23'
    Mode: '0100755'
    Ouid: 0
    Ogid: 0
    Rdev: '00:00'
Raw Lines: Null

Ich teste jetzt einfach mal alles was ich irgendwo zusammensuchen kann:

Code:
# m h  dom mon dow   command
1 1 * * * /usr/bin/midclt call system.shutdown "daily shutdown with user bin“
2 1 * * * midclt call system.shutdown "daily shut no user bin"
3 1 * * * root poweroff
4 1 * * * root /usr/bin/midclt call system.shutdown "daily shutdown with user bin root“
5 1 * * * root midclt call system.shutdown "daily shut no user bin root"
 
Ich hatte das in Vergangenheit auch mal eingerichtet und es hatte recht einfach funktioniert.
Ich erinnere mich aber dunkel, wartet das System nicht noch auf einen Input fürs Log? Also wenn du das System über das GUI runterfährst kommt ja immer das Dropdown mit der Auswahl (Maintenance, Power Outage, etc).
Aber seit ich mein DXP4800 Plus habe läuft das auch 24/7. War bei mir eine alte Office Möhre. Im Bios war der Start für 7:00Uhr eingestellt und um 23:00Uhr ist das ganze ausgegangen. Das war alles recht easy🤔

Ich glaube sogar damit:
RolandR88 schrieb:
Code:
/usr/sbin/shutdown -P

Hats heute Nacht denn funktioniert?
 
Nein, erschreckenderweise hat nichts von den ganzen crontab Einträgen wirklich gezogen.
Die Middleware sagt
Success: True
Reason: daily shut no user bin
das Thema hatte ich schonmal, aber da erfolgt kein Shutdown, sondern mehr oder weniger ein Logout/Login.
Um 01:01 sowie 01:02 logged root jeweils einen Login mit
Proctitle: /usr/sbin/CRON -f
Ich bin hier echt restlos ratlos, warum das nicht funktionieren will :/
 
Versuch mal ein post init Script mit shutdown in X Sekunden
 
Zurück
Oben