Laufende Aufgaben bei zeitgesteuerter Abschaltung

  • Hallo,

    ich überlege gerade, ob ich das 2800er über nacht abschalten sollte. Da kommt mir allerdings die Frage in den Sinn, was dann mit laufenden Aufgaben (z.B. Backup) passiert?

    Werden die dann abgebrochen oder fährt das NAS runter, wenn die fertig sind? Oder fährt es dann gar nicht runter?

    Hat da schon jemand Erfahrungen gesammelt?

    Grüße

    Peter

  • Mhm...ok. Das wirkt dann aber nicht sehr durchdacht. Es wäre schon klüger, zumindest ein aktuell laufendes Backup abzuwarten bevor die Abschaltung eingeleitet wird.

    UGREEN DXP4800 Plus - 2 x 64 GB RAM (CT2K64G56C46S5) - 2 x Crucial P3 Plus 1 TB Gen4 NVMe RAID1 - 4 x 18 TB HDD RAID5 (Toshiba Cloud-Scale Capacity MG09ACA)

    UGREEN DXP4800 - 1 x 48 GB RAM (CT48G56C46S5) - 2 x Samsung 990 Pro 1 TB NVMe RAID1 - 4 x 18 TB HDD RAID5 (Toshiba Cloud-Scale Capacity MG09ACA) Backup-NAS

  • ja, das sehe ich auch so. Ebenso das Update des Virenscanners, das ist fest für 1:00 geplant.
    Ich hatte eigentlich vor, mein NAS von 0:00 bis 8:00 ausschalten zu lassen. Aber das kann ich schon wegen der Updates der Virenscanner knicken. Und falls das Backup mal länger läuft ...

  • So läuft das eben unter Linux. Nach dem Ausführen des Befehls shutdown wird das System sicher, aber bestimmt und i.d.R. unmittelbar heruntergefahren. Was der Befehl genau macht, ist hier ganz gut beschrieben.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 (5600Mhz)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram | DS124 1TB Samsung 870 EVO SSD
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

    Edited once, last by Tommes (June 13, 2025 at 6:43 AM).

  • Tipp von mir: Einen Batchjob schreiben und dabei prüfen, ob alle Subprozesse erfolgreich abgeschlossen sind und erst dann das NAS herunterfahren.

    Es macht schon Sinn, dass der shutdown Befehl genau so arbeitet, anderen falls hätte man ggf. auch keine Chance, den Rechner herunterzufahren, wenn sich mal ein Prozess aufgehangen hat oder ein Prozess noch 2 Tage läuft. Dann käme hier zurecht die Frage, mein shutdown Prozess reagiert nicht, was kann ich machen?

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

  • ok sehr gute Idee. Aber dazu müsste man sich unter Linux auskennen. Wie editiert man so einen Job, wo muss er gespeichert werden usw. ...
    Also Kenntnisse für bash o.ä. sind schon erforderlich ;)

  • Äh, Kenntnisse zum Programmieren wären schon sinnvoll, aber ggf. nicht wirklich notwendig. ;)

    Skriptsprachen, wie Bash oder Perl gehen auf Ugreen OS definitiv. Andere Sprachen hab ich nicht getestet.

    Wo der Job gespeichert wird, ist vollkommen egal. Wichtig ist nur, dass der Owner in der Crontab die entsprechende Zugriffsberechtigung hat. Wenn das der User root ist, wovon ich jetzt mal ausgehe, dann ist noch wichtig alle Programmnanen vollqualifiziert anzugeben, weil hier eventuell in der Pfadangabe eines normalen Benutzers und die des User root sich unterscheiden. So ist das zumindest unter einem normalen Linux OS. Das könnte unter Ugreen OS vielleicht anders sein, wäre dann ggf. zu prüfen.

    Wie editiert man einen Job? Im Texteditor Deiner Wahl. ;). Mit dem Editor TextEdit ginge das auch, aber da gibt es das Problem, dass dir beim Abspeichern die Exetuable Flags abhanden kommen und damit das Skript nicht mehr ausführbar. Dann muss man diese wieder manuell setzen. Also setzt man wohl eher auf Nano oder Vi oder was es sonst noch für Editoren gibt,

    So und dann muss man sich noch ein bisschen mit der Crontab auseinander setzen. Aber auch das ist kein Hexenwerk.

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

  • Hm, das klingt für mich alles ziemlich schwammig. Ich verstehe auch nicht so ganz, welchen Job du wie genau „editieren” willst und wozu, zumal der Programmcode der meisten UGREEN-Programme nicht einsehbar ist. Oder meinst du mit „Editieren” die Crontab selbst? Was würde es dir nützen, wenn dem so wäre? Über die Crontab werden nur Programme bzw. Prozesse gestartet. Wie gesagt, ich will dir nicht unterstellen, das du Blödsinn erzählst, ich versteh’ nur dein Vorgehen nicht. Vielleicht kannst du mir das etwas detaillierter erklären.

    Wäre es nicht sinnvoller, zunächst zu ermitteln, ob ein bestimmter Prozess (noch) läuft, bevor das NAS heruntergefahren wird? Dazu muss man natürlich zunächst herausfinden, wie der Prozess genau heißt und bestenfalls, welche Prozess-ID (PID) er trägt. Läuft dieser Prozess gerade, sollte man ihn so lange beobachten, bis er beendet wurde. Erst dann sollte das NAS heruntergefahren werden. Das könnte man z.B. über ein bash-Skript lösen.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 (5600Mhz)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram | DS124 1TB Samsung 870 EVO SSD
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

  • Also ich würde das wie folgt machen:

    #!/bin/bash

    /PfadZumVirenDownload/Programm && /PfadZumProgramm/shutdown

    --> das ganze in /home/username/skripte/shutdown_nach_virus_update_download.sh abspeichern

    Dann chmod +x /home/username/skripte/shutdown_nach_virus_update_download.sh

    die Ausführungsrechte setzen.

    Dann ist /etc/crontab zu editieren, als User root und folgende Zeile hinzuzufügen.

    00 01 * * * root /home/username/skripte/shutdown_nach_virus_update_download.sh

    Und das ganze kann man testen, indem man das Skript als root ganz normal ausführt, und zwar so wie der Pfad in der Crontab auch angegeben wurde. Wenn es erfolgreich ist, fährt er beim Test allerdings auch das NAS runter.

    So hier können auch noch Tippfehler drin sein, ich hab das ganze nur aus dem Kopf geschrieben. Es sind natürlich noch Anpassungen zu machen


    Wäre es nicht sinnvoller, zunächst zu ermitteln, ob ein bestimmter Prozess (noch) läuft, bevor das NAS heruntergefahren wird? Dazu muss man natürlich zunächst herausfinden, wie der Prozess genau heißt und bestenfalls, welche Prozess-ID (PID) er trägt. Läuft dieser Prozess gerade, sollte man ihn so lange beobachten, bis er beendet wurde. Erst dann sollte das NAS heruntergefahren werden. Das könnte man z.B. über ein bash-Skript lösen.

    Das hört sich für mich ziemlich kompliziert an. Um ein Skript und einen Eintrag in der crontab wirst du wohl nicht herum kommen. Und m. E. ist es dann einfacher, wie im Bash-Skript gezeigt einfach einen Einzeiler dort zu hinterlegen.

    Also richtig kompliziert ist das auch nicht, aber deutlich aufwendiger als die Lösung, die ich vorgestellt habe.

    Man könnte such sogar das Bash-Skript schenken und den Befehl einfach in die Crontab eintragen, das ist mir gerade erst eingefallen, da hatte ich das mit dem Skript schon fertig.

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

    Edited once, last by Mike0185: Ein Beitrag von karl-heinz-lnx mit diesem Beitrag zusammengefügt. (June 13, 2025 at 9:13 PM).

  • Mir leuchtet bei deinem Vorgehen nicht ein, wie du prüfst, ob der über die Crontab angestoßene Prozess noch läuft? Du musst doch sicherstellen, das der Prozess beendet wurde, bevor das NAS herunterfährt. Wie machst du das? In meinen Augen geht das nur über die Ermittlung der Prozess-ID bzw. die Prozessbezeichnung.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 (5600Mhz)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram | DS124 1TB Samsung 870 EVO SSD
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

  • && prüft das. Wenn der Prozess beendet ist, geht es weiter, vorher nicht. Da brauche ich das Konstrukt mit der ProzessID nicht.

    && prüft in den Fall, ob der vorherige Befehl in Ordnung war und startet dann in diesem Fall nur den shutdown Befehl.

    Mit dem Semikolon ; kann man auch den shutdown Befehl in jedem Fall starten, egal ob der korrekt beendet wurde oder nicht.

    Was man möchte, hängt halt vom Anwender ab.

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

    Edited once, last by karl-heinz-lnx (June 13, 2025 at 9:58 PM).

  • Hm… ich lass das für den Moment mal so im Raum stehen, da ich das für mich zunächst verifizieren muss. Ich hätte bisher nicht vermutet, das ein && nach einem Programmaufruf darauf wartet, bis ein Prozess beendet wurde, bevor es mit dem nächsten Befehl fortfährt. Es müsste in dem Fall ja sowas wie ein Exit-Code übergeben werden und dann wäre die Frage, ob der Befehl nach dem && auch dann ausgeführt wird, wenn der Exit-Code nicht 0 ist.

    Dein Ansatz klingt auf jeden Fall interssant und ich werde dem auf jeden Fall nachgehen … wann auch immer und wie auch immer. Für den Moment möchte ich es an dieser Stelle daher dabei belassen.

    Nichts desto trotz müsste man in allen anderen Fällen, also wenn es nicht über die Crontab läuft, die Prozess-ID ermitteln und damit arbeiten.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 (5600Mhz)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram | DS124 1TB Samsung 870 EVO SSD
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

  • Ich fände es gut, wenn UGOS vor dem zeitgesteuerten shutdown prüft, ob noch Prozesse laufen.

    Es könnte dann das runterfahren oder (je nach Konfiguration) die noch laufenden Prozesse abbrechen.

    Zur Dokumentation könnte dieser Vorgang geloggt werden, so das Jeder User, bei dem das Runterfahren nicht funktioniert, bei den Benachrichtungen nachsehen könnte.

  • && prüft das. Wenn der Prozess beendet ist, geht es weiter, vorher nicht.

    Okay. Hast gewonnen! 8)

    Ich habe das gerade mit zwei einfachen Bash-Skripten getestet. Im ersten Skript wird lediglich ein sleep 5 ausgeführt und im zweiten Skript wird die Meldung echo "Script completed. Exit-Code: ${?}" ausgegeben. Wenn ich die beiden Skripte, getrennt durch ein && hintereinander ausführe, läuft es genauso, wie du es beschrieben hast. Wenn ich dem ersten Skript am Ende jedoch z. B. ein exit 99 anhänge, wird das zweite Skript nicht ausgeführt. Tausche ich && gegen ; aus, wird das zweite Skript trotz des exit 99 ausgeführt.

    Wieder was gelernt, denn man kann alt werden wie eine Kuh und lernt immer noch dazu.

    Ich fände es gut, wenn UGOS vor dem zeitgesteuerten shutdown prüft, ob noch Prozesse laufen.

    Du kannst deinen Vorschlag ja hier platzieren, oder dich direkt an den UGREEN-Support wenden.

    FRITZ!Box 5590 Fiber | UniFi Express 7 | 2,5-GBit-LAN & Wi-Fi 7
    DXP4800 Pro - 2x 1TB Crucial P310 NVMe RAID1 - 2x 2TB Crucial MX500 SSD RAID1 - 2x 16GB Crucial CT16G56C46S5 (5600Mhz)
    DS224+ 3TB WD Red HDD RAID1 18GB Ram | DS124 1TB Samsung 870 EVO SSD
    Linux Mint | Ubuntu-Server | Windows | iOS | iPadOS
    UGREEN.FORUM/Filebase | Synology-forum/Add-ons | GitHub.com/toafez

  • Ich fände es gut, wenn UGOS vor dem zeitgesteuerten shutdown prüft, ob noch Prozesse laufen.

    Es könnte dann das runterfahren oder (je nach Konfiguration) die noch laufenden Prozesse abbrechen.

    So ein paar Gedanken von mir, warum das recht schwierig bis fast unmöglich ist.

    Wenn du mal ein "ps -aux" als User root auf einer Konsole absetzt, siehst du recht viele Prozesse, auch wenn du gerade nichts machst und du sagen würdest, die Nas kann heruntergefahren werden.

    Man müsste also identifizieren, was laufende Prozesse sind, bei denen man sagt, wenn das läuft, beende nicht. Aber was genau sind diese Prozesse? Eine Kopieraktion im Dateimanager? Ein gerade laufendes Sync/Backup? Wie sieht es mit ssh Verbindungen aus? Wann können diese beendet werden? Was ist mit Docker Anwendungen? Damit kenne ich mich nicht so gut aus, aber da können ja auch noch Jobs laufen, bei denen man lieber warten möchte, bevor man das Nas herunterfährt. Was ist mit NFS, smb etc. Verbindungen?

    Und dann gibt es noch das GUI Problem, bei dem man feststellen muss, bei welcher Aktion in der GUI, man nicht die Nas herunterfahren möchte.

    Da gibt es sicherlich noch weitere Programme/Applikationen, die mir jetzt nicht eingefallen sind, die für ein allgemeines "herunterfahren, wenn keine Prozesse mehr laufen" noch von Relevanz wären. Aus diesem Gründen ist es m. E. nicht möglich, so ein Skript zu machen.

    Was man machen kann, ist eine Einzelfallbetrachtung, wie in meinem Skript bspw.. Da prüfe ich auch nicht, ob ein Sync/Backuo noch läuft. Wenn das der Fall ist, wird die Nas nach Ende des "Viren" Programms trotzdem heruntergefahren, auch wenn das noch läuft.

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

  • Deine Gedanken kann ich gut nachvollziehen. Das ist nämlich alles nicht ganz so einfach, wie es aussieht ;)

    Ich beschreibe gerne wie das WIndows-intern geregelt ist (ist vielleicht generell interessant):

    da sendet das OS bei dem Wunsch des Runterfahrens, allen Diensten eine entsprechende Nachricht. Die Dienste sind dann dafür verantwortlich alle Ihre Prozesse geordnet zu beenden. Dann senden Sie eine Bestätigung und beenden sich selbst.
    Wenn alle Dienste beendet sind, fährt WIndows runter. Dienste die keine Rückantwort gegeben haben, werden dann tatsächlich auch abgebrochen.

    Generell ist das Verfahren gut, aber aufwändig. Schwierigkeiten enstehen bei Abhängigkeiten von Diensten untereinander (Darum kann man bei Diensten in Windows die Abhängigkeiten der local Services auch einstellen!).

    Wie das ganze intern in Linux gehandhabt wird, weiss ich nicht. Das in Scripten nachzubilden scheint mir auch nicht zu gehen.

    in UGOS wäre es zumindest schön, wenn man den Zeitpunkt des Virenupdates einstellen könnte. Dann könnte man diese und das Backup so einplanen, dass ein runterfahren für die Nacht risikofreier ist ;)

    Schreibt bitte, wenn solche grundlegenden Vergleiche mit anderen OS in diesem Forumnicht angebracht sind ;) :)

  • Funktioniert das in Windows auch, wenn du ein Backup machst, was etwas länger dauert?

    Das ist nur eine Nachfrage, da ich es nicht weiß.

    Funktioniert das auch, wenn du im Explorer noch Dateien kopierst? Was ist mit Skripten die noch über die Kommandozeile oder Powershell laufen? Oder Zeitgesteuerte Jobs? Alles nur reine Nachfrage, da ich diese Funktion in Windows so nicht kenne.

    Den Startzeitpunkt des Virenupdates kannst du über die Crontab einstellen. Dazu per ssh verbinden, zum User root werden und dann /etc/crontab editieren. Da gibt es kein GUI für, oder es ist mir nicht bekannt ;) .

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

  • Danke für den Tipp mit Crontab ;) Wusste nicht, dass die App "Sicherheit das darüber macht"

    In Windows funktioniert das prinzipiell mit allen Diensten. Es hängt aber vom jeweiligen Dienst ab, wie er auf das Shutdown reagiert. Wenn also z.B. der Explorer den reinen Kopiervorgang über einen Dienst abwickelt, wird er nach der Shutdown Anforderung den Dienst sagen, alle Prozesse zu beenden. Ich weiss nicht genau wie dieser Dienst programmiert ist, aber ich denke, dass er zumindest Das kopieren der aktuellen Datei nicht abbricht, sondern erst danach ok meldet. Weitere Kopiervorgänge werden vermulich dann auch nicht gestartet. Aber es wird in der Regel nicht einfach ein Prozess mitten in der Arbeit gekillt.

    Manchmal sieht man beim Shutdown von Windows auch die Meldung, dass nicht runtergefahren werden kann, weil irgendeine App noch einen Dialog offen hat. Z.B. hatte ich das gestern bei Excel. Das war noch offen und ich habe die Datei nicht gespeichert. Der Exel-Dialog, ob ich speichern möchte war noch offen. Und windows sagte in einem Dialog darüber, dass es nicht runterfahren kann...

    Ist also eine komplizierte Gemengelage. Darum versuche ich, die zeitgesteuerten Jobs so einzuplanen, dass möglichst nichts auf sein kann, wenn mein NAS zu Nachtruhe runterfährt ;)

  • Das ist es in der Tat :)

    Theoretisch sind wir dann jetzt durch.

    Also, wenn du noch Hilfe benötigst, dann solltest du jetzt konkret sagen, wie du die Virendefinitionen herunterlädst und wie du dann exakt das Backup startest. Dann kann man ein verbessertes Skript erzeugen. Weil bei dem, was ich oben erwähnt habe, ist das Backup nicht dabei.

    NAS: mehrere DXP-4800+ mit Raid 5, 4 Toshiba 22 TB (Btrfs) und Raid 1, 2 Samsung 990 Pro 4 TB (Btrfs), 64 GB RAM

    Clients/Server: Linux Mint 22.3, MX-Linux, Debian Trixie.

Participate now!

Join our community with over 10,000 members!

Register yourself now for free to get full access to all content, graphics, downloads and other exclusive features!