Beiträge von xterm

    mit einem neuen User hat das nichts zu tun. Die einmal so (über den Autostart-Mechanismus) gestartete Programme überleben ein Logout, werden dann erneut gestartet. Da hilft nur Suchen und killen oder rebbot.


    Das Ganze hat ist auch kein Effekt der nur bei openSuSE auftritt. Ich kann das auch mit Manjaro und Mint reproduzieren.


    Inzwischen habe ich mich bei bugzilla.suse.com angemeldet. Vielleicht findet sich jemand, der das untersucht.
    Möglicherweise ist das ein systemd-Problem, denn die nicht gekillten Prozesse haben als Eltern systemd(1).

    es ist sicher nicht unüblich, dass jemand eine falsche Rubrik wählt, um einen Fakt zu schildern.
    So etwas wie "Fehler oder Fehlverhalten" habe ich hier nicht gefunden. Dafür ist so ein Forum wohl auch gar nicht vorgesehen.


    Auch nach dieser "Warnung" weiß ich es nicht.


    Unverständlich ist auch, warum ich ein umfangreiches Script posten soll, wenn sich der Effekt bereits mit einem 5-Zeiler vollständig zeigen lässt.
    Soll ich hier veralbert werden?
    Auch geht es nicht darum, dass irgendwelche Prozesse laufen, die nicht root gehören.
    Nur wenn ich mich auslogge, sollten wohl keine Prozesse unter meiner User-ID weiter laufen. Genau das kann jeder mit dem 5-Zeiler nachprüfen. Da muss ich nicht hunderte Codezeilen und Einträge in Konfigurationsdateien posten.


    Nochmal: Betriebssystem openSuSE leap 15.0 XFCE


    Datei
    ~/.config/autostart/autorun.<username>.desktop


    [Desktop Entry]
    Comment[de_DE]=
    Comment=
    Exec=/home/<username>/forEver.sh
    GenericName[de_DE]=
    GenericName=
    Icon=system-run
    MimeType=
    Name[de_DE]=
    Name=
    Path=
    StartupNotify=true
    Terminal=false
    TerminalOptions=
    Type=Application
    X-DBUS-ServiceName=
    X-DBUS-StartupType=
    X-KDE-SubstituteUID=false
    X-KDE-Username=


    ------------------------
    Datei: /home/<username>/forEver.sh
    chmod 755 /home/<username>/forEver.sh


    nicht vergessen!




    #!/bin/bash
    while true
    do
    <irgendein ausführbares Script oder Binary>
    done


    ----------------


    Grafisches Login
    - prüfen, ob "<irgendein Script oder Binary>" als Autostart-Programm gestartet wurde.
    ( ps -Af |grep <irgendein Script oder Binary> )
    - Logout (hier von XFCE)


    Login als root auf einer Konsole
    - ps -Af |grep ^<username>


    Dieser Prozess überlebt alle weiteren Logout -> Login

    Gerade weil eben alle Distris das gleiche Verhalten zeigen, ist das wohl nicht die große Sicherheitslücke, auf die du gestoßen sein willst. Das hätte, wie ich meine, niemals so lange unentdeckt bleiben können. Wenn es denn so wäre.


    Kannst du dir vorstellen, das Software in hunderten elektronischer Vermittlunsstellen ohne Probleme über viele Jahre stabil lief, nur in einer liefen die Gebührenzähler manchmal rückwärts? Diese stand auch noch mehrere Tausend Kilometer weit weg und wir konnten daran nicht experimentieren. Es hat 6 Monate gedauert, bis wir den Fehler im Labor reproduzieren konnten. Bis zum "Finden" sind dann noch mal 2 Monate vergangen. Beginnend mit der Fehlermeldung wurden sofort enorme Kapazitäten zur Fehlersuche bereitgestellt.Welchen Schaden die Firma davongetragen hat, wurde uns nie genannt. Die Hektik sagte aber vieles.


    Für mich stellt sich dieser Effekt, dass über die angebotenen Mittel, User-Prozesse ein Logout überleben, als ernsthafter Fehler dar.
    Wer aber will das hier wissen?
    Ich suche hier keine Lösung für irgendein Problem. Deshalb geht aus auch nicht um "althergebrachten Methoden", ich bin seit 10 Jahren Altersrentner, spiele mit Linux (d,h. benutze es, versuche Dinge zu verstehen, schreibe Programme für mich) , nicht mehr.


    In meinem "früheren Leben" war ich einer derer, die Software vor deren Auslieferung getestet haben. Dazu gehörte auch, Dinge zu machen, die der Kunde hätte machen können. Es war erschreckend, was da alles zu Bemängeln war.
    Aus dieser Haut kann und will ich nicht heraus.


    Die Programme (in der Scriptsprache Tcl/Tk ), die bei mir laufen, sind nicht ohne großen Aufwand auf andere Systeme zu übertragen (schon die Erweiterung der Tcl- und der Tk- Library erfordert Wissen oder meine eigenen Tools). Ich will niemanden unterstellen, das nicht zu können, sehe aber keinen Grund, nicht alles so weit zu reduzieren, dass man es sofort versteht.


    So ein stark reduziertes Script habe ich genannt dort aber /usr/bin/xclock eingetragen weil man das dann auch auf dem Monitor sieht.
    Dafür kann aber jedes andere Programm oder Script stehen.


    Getestet habe ich es auch mit /usr/bin/sleep 2 , was natürlich keinen Sinn macht. Ich kann aber damit zeigen, dass es nach dem Logout von der grafischen Oberfläche (bei mir XFCE) weiter läuft.
    <Ctrl><Alt><F1>
    login root


    ps -Af |grep ^<username>
    <username> 8234 6550 0 09:22 pts/1 00:00:00 sleep 2


    Für <username> gibt es nur 2 Prozesse, den des Scripts und den mit sleep, er sollte also definitiv irgendwo noch eingeloggt sein.


    Würde man sleep (oder wie oben xclock) durch ein Script ersetzen, das alle Prozesse eines bestimmten Users erkennt und speichert ....
    Das ist dann schon Spionage, die ein anderer erst einmal nicht erkennt.

    du hast mein Anliegen überhaupt nicht verstanden.
    Selbstverständlich gibt es die /etc/inittab nicht mehr. Kann mich aber noch gut an so etwas wie

    respawn :Der Prozess wird jedesmal neu gestartet, sobald er beendet ist. (Typisches Beispiel ist Getty)

    erinnern. "Dort sind lediglich die Runlevel definiert" ist also falsch.


    "Es wäre wohl sinnvoller für solche Startjobs einfach ein paar Unitfiles zu schreiben und die Arbeit gleich systemd erledigen zu lassen."
    Warum sagst du mir das? Der Autostart-Mechanismus wird in den mir bekannten Distributionen SuSE, Manjaro, Mint angeboten. Dort treten die gleichen Effekte auf.
    Autostart, auf die von mir beschrieben Weise einrichten, ausloggen und die laufen unter meiner User-ID weiter.
    Das soll so gewollt sein. Na danke.

    Mit einem Script, das ~/.config/autostart/ aufgerufen wird, starte ich mehrere Anwendungen (tcl-Scripte).
    Das Script sorgt dafür, dass, ähnlich der inittab-Funktion "Programm nach dem Beenden neu starten" nach einem Exit oder Kill, das Anwenderprogramm wieder neu gestartet wird.
    Aus einem Terminal heraus gestartet gibt es auch keine Probleme.


    Sobald es jedoch als Autostart-Programm aufgerufen wird, bleiben die Prozesse erhalten, auch wenn der betreffende User abgemeldet ist.
    Beim Wiederanmelden laufen diese dann mehrfach.
    Möglicherweise ist das ein Bug von systemd, denn als Elternprozess nennt pstree systemd(1) .
    So ein Verhalten ist für Linux völlig untypisch und u.U. für Spionage zu gebrauchen.
    >> ein User, der sich anmeldet vertraut auf das System, findet mit who nur sich als User, er bemerkt nicht, dass trotzdem andere User-Programme laufen und arbeitet. "Mein Programm protokolliert .... "
    Das ist nicht so gut!!!!



    Hier ein Script für Autostart:


    #!/bin/bash
    while true
    do
    /usr/bin/xclock
    done


    Je öfter man sich ausloggt und wieder einloggt, um so mehr Uhren hat man.
    ?(?(?(

    Zitat von Berichtigung

    Das langweilt.



    Für eine Profi hast du noch ziemlich seltsame Flausen im Kopf.

    Richtig, meine seltsamen Flausen waren, den Fehler zu finden.
    Ein Profi wird sich nie damit abfinden, einen Fehler nicht gefunden zu haben.
    Da macht man auch offensichtlich sinnlose Dinge, wie in SuSE-Leap15.0 ein Boot-Script einzubauen, das "udevadm monitor" im Hintergrund ausführt und das Ergebnis in eine Datei schreibt oder (noch verrückter) in openSuSE-Leap15.0 eine virtuelle Maschine mit SuSE-Leap15.0 laufen zu lassen.


    Ein Profi kann daran ablesen, dass udev tatsächlich die Gerätedateien erzeugt, die ttyUSB0 aber sofort wieder gelöscht wird. Ein Profi entdeckt auch, dass in der Virtuellen Maschine für alle USB-RS232-Adapter Gerätedateien erzeugt werden und die auch benutzbar sind.


    Damit kommt ein Profi auch auf die Idee, dass es sich um einen Hardwarefehler handeln könnte. Und der findet tatsächlich einen RAM-Fehler eines einzelnen Bits in einem 8GByte RAM.


    Noch Fragen?

    Zitat von Berichtigung

    Wenn es ein reines Udev- Problem ist UND zwei "baugleiche Teile" VERSCHIEDEN reagieren,

    sie reagieren keineswegs unterschiedlich. Es ist völlig egal, ob der eine oder der andere USB-RS232-Converter am PC ist. Es müssen 2 sein, damit überhaupt eine Gerätedatei erstellt wird. Das ist immer die /dev/ttyUSB1 (188 1 ) .
    Übrigens laufen bei mir virtuelle Maschinen (Manjaro und Mint ). Dort kann ich die USB-RS232-Converter "durchreichen" und auch benutzen.



    Hatte ich schon mal erwähnt, dass ein ls -la der entsprechenden Verzeichnisse Licht in dein Dunkel bringen könnte?

    Was sind denn für dich "entsprechende Verzeichnisse" ?

    es ist schon denkbar, dass systemd solche Meldungen ausgibt. Hat sich denn systemd zwischen der 42.3 und der 15.0 so geändert? Auch kann ich nicht verstehen, warum man in Linux-Mint solche doppelten Meldungen nicht sieht, die haben aber auch schon die Version 237 und nicht 234.
    Die von der 42.3 reiche ich nach.

    openSuSE Leap15.0 zeigt beim Booten sehr viele Meldungen doppelt an. So z.B.


    Started Login Service
    Started Login Service


    Started Modem Manager
    Started Modem Manager


    und weiter.
    Im log ( /var/log/boot.log) erscheint aber immer nur ein solcher Eintrag.
    Kann man davon ausgehen, dass die Anzeige der Boot-Messages auf dem Monitor falsch ist?