ubuntuusers.de

Start/Stop Script

Status: Gelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: Zähle...

Wenn das mit Units machen will müsste ich eine Unit für Start und eine Unit für Stop schreiben oder?

Die StartUnit muss starten nachdem msmtp gestartet wurde und die StopUnit muss starten bevor msmtp beendet wird.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

lubux schrieb:

Kannst Du evtl. mit z. B. tee (und sudo), in diese Datei schreiben?

echo "Test" | tee -a /var/log/bootemail.log
user@server:/etc/init.d$ echo "Test" | tee -a /var/log/bootemail.log
tee: /var/log/bootemail.log: Permission denied
Test

Dann versuch mal mit:

echo "Test" | sudo tee -a /var/log/bootemail.log

Siehe auch den Unterschied zwischen >, >> und tee. Suche nach "tee vs. echo"

Nexus1 schrieb:

user@server:/etc/init.d$ sudo sh -x /etc/init.d/bootemail start
+ _use_systemctl=1
+ systemctl -p CanReload --value show bootemail.service

Da aus deinem Start-Stop-Script schon eine (nicht native) service-unit _generiert_ worden ist, funkt systemd beim ausführen des Start-Stop-Scriptes in der Koammndozeile, immer dazwischen, was ja nicht schlimm wäre wenn dein Start-Stop-Script fehlerfrei wäre.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

Wenn das mit Units machen will müsste ich eine Unit für Start und eine Unit für Stop schreiben oder?

Nein, start und stop sind in einer einzigen service-unit untergebracht.

Nexus1 schrieb:

Die StartUnit muss starten nachdem msmtp gestartet wurde und die StopUnit muss starten bevor msmtp beendet wird.

Nein. Du solltest dich noch mit der Funktionsweise von msmtp vertraut machen. Wer bzw. was _außerhalb_ der zuständigen service-unit, soll sich dann um das starten und stoppen des msmtp, kümmern?

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

lubux schrieb:

Dann versuch mal mit:

echo "Test" | sudo tee -a /var/log/bootemail.log

Also das hat funktioniert

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

Also das hat funktioniert

Dann schau nach, wie und wo Du diese Erkenntnis, in deinem Start-Stop-Script evtl. umsetzen bzw. unterbringen kannst/solltest.

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

lubux schrieb:

wenn dein Start-Stop-Script fehlerfrei wäre.

Du hast Fehler gefunden? Wirst du mir auch verraten welche?

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

lubux schrieb:

Dann schau nach, wie und wo Du diese Erkenntnis, in deinem Start-Stop-Script evtl. umsetzen bzw. unterbringen kannst/solltest.

Der Logbuchbefehl funktioniert beim Boot und beim Shutdown, nur kommt keine email.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

Du hast Fehler gefunden?

Nein, ich habe nur aus deiner Mitteilung/Aussage, dass es nicht funktioniert, geschlussfolgert.

Um die evtl. Fehler zu finden, müsste ich das auf meinem System umsetzen, aber ich "bin kein Freund von msmtp", weil ich sendemail benutze.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

..., nur kommt keine email.

Die email kommt ja auch beim manuellen Ausführen des Start-Stop-Scriptes (z. B. 10 Minuten nach dem booten) nicht:

Wenn ich das Script an der Konsole ausführe bekomme ich einen Logeintrag aber keine eMail.

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

Damit bekomme ich bei "Ausführung des Scripts" an der Konsole eine eMail aber nicht bei Boot und Shutdown:

mdadm --monitor --scan --test --oneshot

Das hier funkioniert nur an der Konsole aber nicht im Script:

echo -e "Subject: Message from Server\n\nServer is booting" | msmtp xxx@web.de

Die Logbucheinträge funktionieren inzwischen in allen 3 Fällen: Als Befehl an der Konsole, Ausführung des Scripts an der Konsole und beim Boot/Shutdown.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

Damit bekomme ich bei "Ausführung des Scripts" an der Konsole eine eMail aber nicht bei Boot und Shutdown:

Das ist schon mal gut. Erstelle ein entsprechendes Verzeichnis für eine drop-in-Datei und konfiguriere damit zusätzliche Abhängigkeiten für die generierte service-unit, die Einfluss auf den Zeitpunkt der Ausführung des Start-Stop-Scriptes (via service-unit/systemd) haben. Siehe dazu einige meiner Beiträge hier in deinem/diesem Thread.

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

lubux schrieb:

Da aus deinem Start-Stop-Script schon eine (nicht native) service-unit _generiert_ worden ist, funkt systemd beim ausführen des Start-Stop-Scriptes in der Koammndozeile, immer dazwischen

Kann mich gar nicht erinnern angefordert zu haben eine Unit zu generieren, geschweige denn mir an der Konsole dazwischen zu funken. Fängt Linux jetzt etwa auch damit an im Hintergrund irgenwelche Dinge zu verändern um die man nicht gebeten hat und von denen man noch nicht mal was mitbekommt und auch nicht benachrichtigt wird?? Das ist eine Entwicklung die mir nicht so gefällt, das sind ja Zustände wie in Redmont. 😠

Für die Sache mit den Units müsst ihr mir etwas Zeit geben. Da hab ich bei NULL angefangen aber das trau ich mir schon zu. Nebenbei mal DANKE für eure Zeit! 😎

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Nexus1 schrieb:

Das ist eine Entwicklung die mir nicht so gefällt, das sind ja Zustände wie in Redmont.

Nein, das ist nicht so.

Wie sind jetzt die Ausgaben von:

systemctl is-enabled bootemail.service
systemctl is-active bootemail.service
systemctl status bootemail.service

?

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

Enabled

user@server:~$ systemctl is-enabled bootemail.service
bootemail.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled bootemail
enabled

Active

user@server:~$ systemctl is-active bootemail.service
active

Status

user@server:~$ systemctl status bootemail.service
● bootemail.service - LSB: Send eMail on boot, send eMail on shutdown
     Loaded: loaded (/etc/init.d/bootemail; generated)
     Active: active (exited) since Sun 2022-09-18 11:52:31 CEST; 1h 29min ago
       Docs: man:systemd-sysv-generator(8)
    Process: 838 ExecStart=/etc/init.d/bootemail start (code=exited, status=0/SUCCESS)
        CPU: 137ms

Sep 18 11:52:28 ufs systemd[1]: Starting LSB: Send eMail on boot, send eMail on shutdown...
Sep 18 11:52:31 ufs bootemail[882]: sendmail: Host smtp.mail.de kann nicht gefunden werden: Temporary failure in name resolution
Sep 18 11:52:31 ufs bootemail[882]: sendmail: Mail konnte nicht verschickt werden (Konto default aus /etc/msmtprc)
Sep 18 11:52:31 ufs systemd[1]: Started LSB: Send eMail on boot, send eMail on shutdown.

Dann muss ich mich wohl noch mal mit der msmtprc beschäftigen.

Nexus1

(Themenstarter)

Anmeldungsdatum:
17. September 2022

Beiträge: 34

Das versteh ich grade nicht, was soll ich denn bei Host sonst eintragen als smpt.mail.de?

https://mail.de/de/hilfe/nachrichten/externe_e-mail_clients/pop3-imap_einstellungen

Scheint mir eher als ob der Host nicht erreichbar ist. Muss ich noch was in der Firewall zulassen?