close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#2907 closed Defekt (im Image)

Screen-Sitzungen, die über systemd gestartet werden, überleben nicht

Reported by: Rüdiger Kupper Owned by: Rüdiger Kupper
Priority: bald erledigen Milestone: Image "Famoser Falk"
Component: Software: Ubuntu Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc: bau

Description

Eigenartiger Effekt:

  • wird das Skript über systemd aufgerufen, so überleben sie Screen-Sitzungen nur, solange das Skript läuft. Sobald es fertig ist, werden sie gekillt.
  • ruft man das Skript später von Hand auf, bleiben sie.

-> gibt es in systemd irgend einen Mechanismus, der nach Ende des Skripts "aufräumt"?

Change History (5)

comment:1 by Rüdiger Kupper, 8 years ago

Es ändert auch nichts, wenn man die screens mit "&" oder "nohup" startet. Eigenartig.
Ich vermute, systemd räumt auf.

comment:2 by Rüdiger Kupper, 8 years ago

Hier werden Optionen erwähnt, die meine Vermutung bestätigen:

​https://stackoverflow.com/questions/39032100/what-is-the-difference-between-systemd-service-type-oneshot-and-simple

Schlüsselworte: RemainAfterExit=true und KillMode=none

=> also, ich muss systemd besser verstehen.
=> Dokumentation lesen!

comment:4 by Rüdiger Kupper, 8 years ago

Resolution: → im Image
Status: new → closed

Eigenartiger Effekt:

  • wird das Skript über systemd aufgerufen, so überleben sie Screen-Sitzungen nur, solange das Skript läuft. Sobald es fertig ist, werden sie gekillt.
  • ruft man das Skript später von Hand auf, bleiben sie.

-> gibt es in systemd irgend einen Mechanismus, der nach Ende des Skripts "aufräumt"?

comment:5 by Rüdiger Kupper, 8 years ago

Ja, Services vom Typ "OneShot" werden "aufgeräumt": Sobald der Hauptprozess endet, werden auch alle Kindprozesse von systemd getötet. (Der Status ist dann inactive(dead).

Der Eintrag RemainAfterExit=true ändert dieses Verhalten: Die Kindprozesse bleiben am Leben, der Status ist dann active(exited).

Note: See TracTickets for help on using tickets.