Ort im Dateisystem finden, an welchem bei Systemstart ein Script aufgerufen wird

  • Hallo Ihr,

    ich habe leider für mich nicht dokumentiert, wie ich einen vor Jahren von mir implementierten Py-Server während des Hochfahrens des Systems starte und hab's mir auch nicht gemerkt. Das ist zugegebenermaßen blamabel. Die Frage ist jetzt, wie ich es noch herausfinden kann. An den an erster Stelle verdächtigen Orten (/etc/rc.local, /etc/init.d,... ) werde ich nicht fündig. Mittels grep habe ich alle Dateien des Systems nach dem Startkommando für das Programm erfolglos durchsucht. Ergebnis sind nur Treffer in $HOME/.bash_history (wo der Aufruf mit seinen Aufrufparametern auch auftaucht). Das ps Kommando beweist, dass der Server-Prozess läuft; ppid ist 1. Gibt es eine Log-Datei, in welcher ich fündig werden kann, oder eine andere Methode, welche zu einem positiven Ergebnis führt ?

    maksimilian

  • Ort im Dateisystem finden, an welchem bei Systemstart ein Script aufgerufen wird? Schau mal ob du hier fündig wirst!

  • In der Datei /var/log/syslog könntest Du mit Deiner Suche danach ggf. bei den Einträgen zu systemd oder CRON erfolreich sein. Evtl. könnte auch eine *.desktop-Datei unter ~/.config/autostart dafür verantwortlich sein etc.

    Was macht dieser Server denn? Vielleicht findest Du darauf bezogen den Autostart.

  • Hallo,

    Quote

    Das ps Kommando beweist, dass der Server-Prozess läuft; ppid ist 1.

    Sicher nicht. PID 1 ist der Prozess, der sich im den Start des Systems kümmert. Also seit ca. 10 Jahren systemd.

    Wenn das Programm via Cron gestartet wird sollte was in /etc/cron.d liegen. Wenn du via sysvinit startest - was in den letzten Jahren ziemlich old-school gewesen wäre - dann sollte was in /etc/rc.local oder /etc/init.d sein. Wenn du eine systemweite systemd Service Unit geschrieben hast sollte die in /etc/systemd/system liegen. Wenn du eine systemd User Service Unit hast sollte die in /etc/systemd/user oder ~/.config/systemd/user liegen. Wobei User Units nicht beim Systemstart geladen werden sondern erst, wenn der Nutzer sich einloggt. Gleiches gilt für das von hyle erwähnt, Autostart-Einträge in ~/.config/autostart . Wobei für letztere auch ein grafischer Desktop auf dem Pi laufen müsste.

    Des Weiteren gab / gibt es noch andere / ältere Sachen wie supervisord zum Starten von Diensten. Das meiste ist aber mit systemd eher obsolet geworden.

    Gruß, noisefloor

  • Sicher nicht. PID 1 ist der Prozess, der sich im den Start des Systems kümmert. Also seit ca. 10 Jahren systemd.

    Warum nicht? Er hat PPID und nicht PID geschrieben. Z. B.:

    Code
    :~ $ ps -o ppid= -p $(pidof inetd)
          1

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    PI3B OpenBSD 7.4 (64bit), mit stayauth-Flag 24/7 im Wlan

  • BTW: der Befehl ps -o ppid= -p $(pidof inetd) wirft bei mir den Fehler "error: list of process IDs must follow -p".

    Weil Du den superserver (inetd) nicht benutzt bzw. nicht gestartet hast?

    Code
    :~$ ps -o ppid= -p 1
        0
    Code
     ps -fp 1

    BTW: Ich denke der TE kennt ja die PID von seinem gestarteten "Server". Er will, warum auch immer, hier keine weitere Infos dazu zeigen, oder?

    @TE: Evtl. auch in der /var/log/boot.log* schauen, ... wenn Du kein "quiet" in der /boot/cmdline.txt hast.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    PI3B OpenBSD 7.4 (64bit), mit stayauth-Flag 24/7 im Wlan

  • Hallo,

    BTW: Ich denke der TE kennt ja die PID von seinem gestarteten "Server". Er will, warum auch immer, hier keine weitere Infos dazu zeigen, oder?

    Scheint so. Habe gerade nochmal auf meinem Raspi nachgeschaut: habe auch einen Python Server laufen, ist via systemd Service Unit gestartet. In der Ausgabe von ps aux steht der volle Pfad zum Skript.

    Gruß, noisefloor

  • .... In der Ausgabe von ps aux steht der volle Pfad zum Skript.

    Ja, lt. seinem 1. Beitrag hat er ja mit ps geschaut und ihn auch gefunden. Jetzt kann er auch noch mit systemctl, nach einer service-unit (für sein Script) schauen. Z. B.:

    Code
    :~ $ ps aux | grep -i [d]roopy
    <user>        510  0.0  0.4  24848 16736 ?        Ss   Dec01   0:13 /usr/bin/python3 /usr/bin/droopy --config-file /usr/local/etc/droopy.conf 7171
    Code
    :~ $ systemctl list-units --type=service | grep -i droopy
      droopy.service                 loaded active running droopy: python3 http server

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    PI3B OpenBSD 7.4 (64bit), mit stayauth-Flag 24/7 im Wlan

  • Danke für die vielen Tipps. ich bin ja froh, dass es keine Häme gibt. Leider bin ich bisher nicht erfolgreich.

    /etc/cron.d ist leer

    /etc/rc.local negativ

    /etc/init.d negativ (auch grep -d -H findet nichts)

    ~/.config existiert nicht

    /var/log/boot.log* existieren nicht

    ps [-]aux liefert nicht den Ort des Aufrufs

    Ich komme mir ziemlich blöd vor.

    Py-Server ist ein Python-Programm, welches im wesentlichen die Befehle einer Android-App zur Steuerung von zwei Türen einer Hühnerhütte entgegennimmt und ausführt.

    Code
    pi@chicken:~ $ ps -elf|grep chicken-server
    0 S pi       13245     1  3  80   0 - 48481 futex_ 14:26 ?        00:08:36 python3 /home/pi/chicken-server.py
    0 S pi       14981 14608  0  80   0 -  1195 pipe_r 18:51 pts/0    00:00:00 grep --color=auto chicken-server
  • Py-Server ist ein Python-Programm, welches im wesentlichen die Befehle einer Android-App zur Steuerung von zwei Türen einer Hühnerhütte entgegennimmt und ausführt.

    Code
    pi@chicken:~ $ ps -elf|grep chicken-server
    0 S pi       13245     1  3  80   0 - 48481 futex_ 14:26 ?        00:08:36 python3 /home/pi/chicken-server.py

    Wie ist die Ausgabe von:

    Code
    systemctl list-units --type=service | grep -i chicken

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    PI3B OpenBSD 7.4 (64bit), mit stayauth-Flag 24/7 im Wlan

  • SCHANDE über mein Haupt ! Ich hatte offensichtlich ursprünglich die /etc/rc.local für den Start vorgesehen und dort Änderungen vorgenommen, welche ich nicht mehr nachvollziehen kann :( Bei Störungen in der Tür-Steuerung der Hühnerhütte, was ab und zu wegen Blockade der Außentür passiert, starte ich den Server-Prozess über die App neu ! Da der Pi ein "Dauerläufer" ist, war ich auf den Systemstart nicht mehr angewiesen.

    Aber um doch einen Lerneffekt mitzunehmen: rc.local ist ja old school. Wie/wo sollte ich den Start meines Py-Servers beim Systemstart vornehmen ?

  • Als Vorlage/Anregung hier mal so ein Script für , so wie er bei mir für den Start eines Stromzähler-Python-Scriptes läuft:

    Der Pfad, wo das Ganze liegt, steht (für mich) im Script.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!