Script von der Shell lösen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Retr0
Beiträge: 4
Registriert: 07.03.2018 11:59:30

Script von der Shell lösen

Beitrag von Retr0 » 26.03.2018 00:17:40

Hallo alle zusammen,

ich habe ein kleines problem und zwar möchte ich ein Script ausführen ohne per ssh verbunden bleiben zu müssen.
Deshalb habe ich nach einer lösung gesucht und auf folgendes gestoßen.

Starten des Scriptes mit

Code: Alles auswählen

./Ordner/Script &
Script lösen

Code: Alles auswählen

disown %1
dann verlasse ich die ssh sitzung mit logout und genau dann wird auch das script beendet, wo ist mein fehler?

gruß retr0

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Script von der Shell lösen

Beitrag von eggy » 26.03.2018 00:31:54

Schau Dir mal screen an

geier22

Re: Script von der Shell lösen

Beitrag von geier22 » 26.03.2018 05:45:05

Hilft dieser Thread vielleicht weiter?
viewtopic.php?f=34&t=169097

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Script von der Shell lösen

Beitrag von Meillo » 26.03.2018 09:33:15

geier22 hat geschrieben: ↑ zum Beitrag ↑
26.03.2018 05:45:05
Hilft dieser Thread vielleicht weiter?
viewtopic.php?f=34&t=169097
Ja. `nohup' ist das richtige Stichwort.
Use ed once in a while!

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Script von der Shell lösen

Beitrag von heisenberg » 26.03.2018 10:13:34

Hat das hier auch schon mal dazwischen gefunkt?

https://www.golem.de/news/aufraeumen-vo ... 21176.html
Golem hat geschrieben:Die aktuelle Version der Login-Verwaltung von Systemd beendet beim Abmelden sämtliche laufenden Prozesse.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Script von der Shell lösen

Beitrag von scientific » 26.03.2018 16:10:26

heisenberg hat geschrieben: ↑ zum Beitrag ↑
26.03.2018 10:13:34
Hat das hier auch schon mal dazwischen gefunkt?

https://www.golem.de/news/aufraeumen-vo ... 21176.html
Golem hat geschrieben:Die aktuelle Version der Login-Verwaltung von Systemd beendet beim Abmelden sämtliche laufenden Prozesse.
Debian hat das aber noch deaktivert...

Das Verhalten, dass nach dem Ausloggen alle Prozesse des Users beendet werden, ist ja auch korrekt. Man stelle sich das Szenario vor, das ein Programm mit sensiblen Logindaten im Speicher hängen bleibt, nachdem sich der User ausgeloggt hat, und dann läuft dieses Programm eventuell wochenlang weiter und bietet so einem Angreifer die Möglichkeit unbeobachtet das Passwort auszuforschen.

Für Prozesse die explizit nach dem Ausloggen weiterlaufen sollen, ist von der bisherigen Arbeitweise abzugehen und z.B. Screen von systemd --system ausserhalb der Session starten zu lassen.
Ich hab irgendwo schon eine passende Unit dazu gepostet, wo man einzelnen Usern diese Berechtigung/Möglichkeit explizit geben kann.

Erstelle dir die Datei als root
/etc/systemd/system/screen@.service

Code: Alles auswählen

[Unit]
Description=screen for user %i
After=network.target

[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i
ExecStartPre=-/usr/bin/xdg-user-dirs-update
ExecStart=/usr/bin/screen -DmS autoscreen_%i
#ExecStartPost=/bin/sh -c '/bin/systemctl set-environment --user XDG_RUNTIME_DIR=/run/user/$(/usr/bin/id -u %i)'
ExecStop=/usr/bin/screen -S autoscreen_%i -X quit
#Restart=on-success
Restart=always

[Install]
WantedBy=multi-user.target
Dann enable und starte die Unit für deinen User mit

Code: Alles auswählen

systemctl start screen@deinuser.service
systemctl enable screen@deinuser.service
Wenn du dich auf der Shell mit

Code: Alles auswählen

screen -UxR
mit der Screen-Session verbindest, kannst du darin Commandos starten, die ein Ausloggen überleben.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten