Hallo zusammen,
gibt es eine Möglichkeit, eine Variable in Speicher Pergament abzulegen solange wie das Terminal offen ist, auch wenn das Script beendet ist
und mit einem anderen Script diese Variable wieder auszulesen und den Speicher frei zugeben.
Gruß
Variabeln in Speicher Schreiben
Das klingt nach einem XY-Problem.
Was ist das Ziel, das du eigentlich erreichen möchtest und für das du denkst, dass das die Lösung ist?
Was ist das Ziel, das du eigentlich erreichen möchtest und für das du denkst, dass das die Lösung ist?
Es geht darum, ich möchte eine art Terminal Session Speichern und diese beim neuaufruf des Script auslesen.
Ich habe schon gesucht, ob eseine Aktive Terminal Session gibt, bin da aber leider nicht fündig geworden, dies wäre einfacher als die Frage von oben.
Ich habe schon gesucht, ob eseine Aktive Terminal Session gibt, bin da aber leider nicht fündig geworden, dies wäre einfacher als die Frage von oben.
- DeaD_EyE
- User
- Beiträge: 1343
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Dateien bleiben nach dem Verlassen des Interpreters erhalten. Wenn du z.B. den Zustand deines Programms z.B. mit Pickle als Datei abspeicherst, kannst du diesen später laden. Das Setzen von Umgebungsvariablen ist z.B. sinnlos, da die veränderten Umgebungsvariablen nur eine Kopie des Eltern-Prozesses sind (meistens die Shell).
Suchst du so etwas wie einen Terminal Multiplexer? Schau mal nach Tmux und Screen. Tmux ist moderner.Es geht darum, ich möchte eine art Terminal Session Speichern und diese beim neuaufruf des Script auslesen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- __blackjack__
- User
- Beiträge: 14391
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@s0pply: Man kann Werte in eine Datei schreiben und die später wieder einlesen. Das muss man halt programmieren. Das ist aber unabhängig von einem offenen Terminal. Das muss es ja gar nicht geben — Prozesse können auch laufen, ohne mit einem Terminal verbunden zu sein. Einer der Gründe warum man gespeicherte Daten eher schlecht bis gar nicht, einem Terminal zuordnen kann. Mir würde da jetzt auch kein anderes Programm oder Programme einfallen die so etwas machen.
Who is General Failure and why is he reading my hard disk?
- noisefloor
- User
- Beiträge: 4324
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Was ist denn wirklich dein Anliegen? Wie im ersten Post gesagt ein Python-Skript, was im Terminal läuft und irgendwann zu Ende ist oder eine Python Webapplikation, die auf einem Applikationsserver läuft?
Gruß, noisefloor
Das sind aber zwei paar Schuhe. Bei PHP läuft der Webserver darunter die ganze Zeit - das ist _nicht_ das gleiche wie ein Terminal, aus dem ein Python-Skript gestartet wird. Wenn du ein Python-Webframework wie Django oder Flask oder so benutzt, dann gibt es da auch ein Session-Management....es gibt so was wie bei PHP eine Art Session...
Was ist denn wirklich dein Anliegen? Wie im ersten Post gesagt ein Python-Skript, was im Terminal läuft und irgendwann zu Ende ist oder eine Python Webapplikation, die auf einem Applikationsserver läuft?
Gruß, noisefloor
-
Pedroski55
- User
- Beiträge: 56
- Registriert: Freitag 25. Juli 2025, 00:20
Vielleicht so:
1. Speicher dies als set_variable.py (Mein Speicherpfad ist os/set_variable.py)
2. In bash
4. In bash lass os/get_variable.py laufen:
1. Speicher dies als set_variable.py (Mein Speicherpfad ist os/set_variable.py)
Code: Alles auswählen
#! /usr/bin/python3
print('new_var="Der Python liebt dich"')3. Mach eine Datei os/get_variable.py:peterr@peterr-Modern-15-B7M:~/PVE$ eval "$(python3 os/set_variable.py)"
peterr@peterr-Modern-15-B7M:~/PVE$ echo $new_var
Der Python liebt dich
peterr@peterr-Modern-15-B7M:~/PVE$ export new_var
Code: Alles auswählen
import os
# Access the environment variable
value = os.environ.get('new_var')
print(f'value ist {value}')Allerdings, es wäre viel einfacher, die Info in eine Datei zu speichern!(GPE) peterr@peterr-Modern-15-B7M:~/PVE$ python3 os/get_variable.py
value ist Der Python liebt dich
- DeaD_EyE
- User
- Beiträge: 1343
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Eine Alternative wäre Redis als Cache/SesstionStore: https://oneuptime.com/blog/post/2026-03 ... redis/view
Das erfordert einen Redis-Server. Es gibt aufgrund der Lizenz-Problematik soweit ich weiß 2 andere OpenSource-Projekte. Eins davon wird von der Linux Foundation gesponsort.
Das erfordert einen Redis-Server. Es gibt aufgrund der Lizenz-Problematik soweit ich weiß 2 andere OpenSource-Projekte. Eins davon wird von der Linux Foundation gesponsort.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Wenn es nur darum geht, ein paar Werte über eine Session zu retten, kann man vielleicht auch etwas mit den dbm-Modulen basteln. Es sollte ausreichen, um ein paar Werte in ein anderes Programm zu retten.
Aber Achtung: Die Werte werden immer als Bytes gespeichert, und ich bin nicht sicher, wie gut dbm mit konkurrierenden Zugriffen klarkommt.
ungefähr so:
Aber Achtung: Die Werte werden immer als Bytes gespeichert, und ich bin nicht sicher, wie gut dbm mit konkurrierenden Zugriffen klarkommt.
ungefähr so:
Code: Alles auswählen
import dbm
def save_session(path: str, data: dict):
with dbm.open(path, 'c') as db:
for key, value in data.items():
db[key.encode()] = value.encode()
def load_session(path: str) -> dict:
data = dict()
with dbm.open(path, 'r') as db:
for key, value in db.items():
data[key.decode()] = value.decode()
return data
def main():
session_store = "session.db"
session_data = {"user": "Santa, Clause", "hello": "World"}
save_session(session_store, session_data)
for key, value in load_session(session_store).items():
print(key, value)
if __name__ == "__main__":
main()
Möglich wären auch JSON oder eine reine Python Datei, die nur aus Zuweisungen besteht. Den Zustand einer Shell kann man sich auch merken, indem man den Inhalt von os.environ speichert. Kompliziert bis unmöglich wird das Merken von Seiteneffekten durch Befehle in der Shell, wie Veränderungen am Dateisystem und dem Starten von Diensten. Soll es in diese Richtung gehen oder was genau ist mit einer Shell Session gemeint?
So in der Art, aber habe mich für den einfachsten Weg entschieden, dies mittels einer Datei zu lösen.snafu hat geschrieben: Montag 27. April 2026, 13:12 Soll es in diese Richtung gehen oder was genau ist mit einer Shell Session gemeint?
Vielen Dank für eure Vorschläge...
