Frage von Felix193, 34

[scanmem] set Befehl "loopen"?

Hallo,

gibt's eine möglichkeit wie ich unter Linux bei dem Programm "Scanmem" jede Sekunde einen Wert wieder auf 0 setze? Vielen Dank!

Schönen Sonntag noch!

Antwort
von Linuxhase, 15

Hallo

gibt's eine möglichkeit wie ich unter Linux bei dem Programm "Scanmem" jede Sekunde einen Wert wieder auf 0 setze?

Ich kenne das Programm ja nicht, noch weiß ich was es tut, aber wenn Du eine Art Loop-Funktion haben willst ist eventuell watch eine Möglichkeit. Hier ein Beispiel:

watch -n1 "df -hT"

... einen Wert wieder auf 0 setze

Wo steht der Wert und wo kommt er her?

Linuxhase

Kommentar von Felix193 ,

Hallo, entschuldigung für die Verzögerte antwort.

watch ist schon anderweitig besetzt, zumal ich keinen Zugriff auf Konsolen Befehle habe.

Ich führe ein Programm mit der Konsole aus, und such dort nach einem bestimmten Wert. Dieser wird mit einem Befehl dann immer wieder zurück gesetzt. Leider muss dies immer wieder weiderholt werden...

Kommentar von Linuxhase ,

@Felix193

watch ist schon anderweitig besetzt

Es ist ja nicht so dass man das Programm nicht mehrfach benutzen darf und kann.

Ich führe ein Programm mit der Konsole aus

zumal ich keinen Zugriff auf Konsolen Befehle habe.

Wie soll ich das jetzt verstehen?

und such dort nach einem bestimmten Wert. Dieser wird mit einem Befehl dann immer wieder zurück gesetzt. Leider muss dies immer wieder weiderholt werden...

Nochmal:

  1. Wo kommt der Wert her?
  2. Führt dieses zurücksetzen des Werts zu einer Änderung/Anpassung irgendwo bzw. worauf wirkt sich das aus?
  3. Kannst Du mir bitte mal den Code zeigen der das für Dich tut, eventuell gibt es da ja einen eleganteren Weg.

Linuxhase

Kommentar von Felix193 ,

Entschuldigung für die späte Antwort. Aber mir wurde diese Antwort nie angezeigt.

1. Der Wert ist Hexa-Dezimal und kommt von einem Programm. (Value) Mit dem Programm scanmem kann ich nach dem Wert suchen.

2. Durch das zurücksetzen wird bei jendem Programm (nicht scanmem) eine value verändert. Dies hat auch auswirken aufs Programm.

3. Zunächst einmal starte ich das programm, indem ich "scanmem" eingebe. Dann suche ich die PID, mit "ps ax", jedoch in einem anderen Terminal Fenster! Dann gebe ich wieder in dem Terminal Fenster, indem scanmem offen ist "pid PID" und dann suche ich nach der Value, indem ich einfach diese eingebe. Am Anfang bleiben noch einige über am ende nur die relevante. Die setze ich dann mit "set 0" auf 0.

Indem Programm ist "watch" schon anderwertig belegt.

Kommentar von Linuxhase ,

@Felix193

Entschuldigung für die späte Antwort. Aber mir wurde diese Antwort nie angezeigt.

Merkwürdige Dinge die hier bei gutefrage.net passieren.

Zunächst einmal starte ich das programm, indem ich "scanmem" eingebe. Dann suche ich die PID, mit "ps ax",

Warum nicht gleich so?:

scanmem $(pidof PROGRAMMNAME)

dann suche ich nach der Value, indem ich einfach diese eingebe

OK.

scanmem $(pidof PROGRAMMNAME) |grep 'VALUE'

geht doch bestimmt auch oder?

Die setze ich dann mit "set 0" auf 0.

Ich benutze/kenne das Programm nicht, aber sollte das nicht auch in einem Durchgang funktionieren,etwa so....:

scanmem $(pidof PROGRAMMNAME)|grep 'VALUE' && "set 0";exit 0

.... oder ist es so das scanmem eine händische Eingabe erwartet?

Indem Programm ist "watch" schon anderwertig belegt.

  1. In scanmem oder in dem Programm dessen Wert Du aus dem Speicher liest?
  2. Dir ist aber schon klar das Du watch nicht in dem Programm sondern in der Shell ausführst? - Zum Beispiel:
watch -n1 "$(for i in $(pidof PROGRAMMNAME) ; do scanmem $i | grep 'VALUE' && 'set 0' ; done

Btw.: ich halte gar nichts von cheaten (was offensichtlich das was meistens damit getan wird, jedenfalls nach meiner Recherche)

Linuxhase

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten