Prozess Liste

Prozess Liste

Beitragvon jscnetcore » 8. Okt 2018, 17:03 Prozess Liste

Guten Tag zusammen,

nach langer Zeit habe ich mir jetzt Zeit genommen meine Programme auf 64Bit umzustellen.
In den vorhanden 32Bit Programmen wurde noch "sigqueue" aus der "libc" verwendet um für eine bekannte PID den Status abzufragen, aktiv oder beendet.
Das stammt noch aus Kylix Zeiten;-)
Code: Alles auswählen
If (sigqueue(LastPID, 0, sig) = 0) Then Begin usw.

Ich habe jetzt schon eine gefühlte Ewigkeit im Netz gesucht und nichts passendes für LINUX gefunden.

Kann mir jemand einen Tip geben welcher Lazarus Befehl hier helfen kann?

Vielen Dank und viele Grüße

Josch
jscnetcore
 
Beiträge: 19
Registriert: 31. Jul 2013, 10:34
OS, Lazarus, FPC: Debian Squeeze Linux (L 1.0.8 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Warf » 8. Okt 2018, 17:20 Re: Prozess Liste

Einfach selbst gegenlinken:
Code: Alles auswählen
uses BaseUnix;
 
function sigqueue(pid: pid_t, sig: cint, const value: IntPtr): cint; cdecl; external 'libc';


Aber ma so ne ganz dumme Frage, gibt es da keine bessere Möglichkeit, z.b. Waitpid?
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon jscnetcore » 9. Okt 2018, 09:24 Re: Prozess Liste

Servus,

zuerst einmal vielen Dank für die schnelle Reaktion!

Ich weiß nicht ob fpWaitPID hier der richtige Ansatz ist.

Gemacht wird folgendes. Eine Anwendung wird beim Beenden nicht wirklich beendet, sondern nur die Sichtbaren Komponenten ausgeblendet.
Als Anwender sieht es so aus als wäre das Programm beendet.
Wenn man das Programm dann erneut startet soll der alte Prozess die Arbeit wieder übernehmen. Der Hintergrund ist, daß das Programm Datenbankverbindungen
aufbaut, was teilweise länger dauern kann. Gerade dann wenn es remote via Internet Verbindungen aufbaut ist das sehr hinderlich.
Um es noch komplizierter zu machen;-) Das Programm kann mehrfach laufen aber mit Verbindungen zu unterschiedlichen Datenbanken.
Über Konfigdateien, die beim Start des Programms geschrieben werden wird die PID und die dazugehörigen Datenbankverbindungen gespeichert.
Und diese gespeicherte PID soll abgefragt werden, aktiv oder nicht.

Bei fpWaitPID wird immer von Child Prozessen gesprochen. Das trifft ja hier nicht zu?!

Gruß Josch
jscnetcore
 
Beiträge: 19
Registriert: 31. Jul 2013, 10:34
OS, Lazarus, FPC: Debian Squeeze Linux (L 1.0.8 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Warf » 9. Okt 2018, 18:51 Re: Prozess Liste

jscnetcore hat geschrieben:Bei fpWaitPID wird immer von Child Prozessen gesprochen. Das trifft ja hier nicht zu?!

Gruß Josch


Stimmt, wenn es kein Child ist dürfte WaitPID nicht funktionieren. Dann könntest du kill (bzw. fpkill) verwenden:
man kill(2) hat geschrieben: If sig is 0, then no signal is sent, but existence and permission
checks are still performed; this can be used to check for the
existence of a process ID or process group ID that the caller is
permitted to signal.


Kommt also praktisch auf das selbe raus wie du es machst, nur das fpkill bereits in BaseUnix exsistiert.

Du solltest aber nicht nur schauen was rauskommt, sondern wenn du einen Fehler bekommst solltest du auch noch schauen ob der Prozess wirklich gekillt wurde oder nicht was anderes passiert ist (z.B. keine Berechtigung)
Warf
 
Beiträge: 985
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon jscnetcore » 16. Okt 2018, 08:25 Re: Prozess Liste

Guten Morgen Warf,

entschuldige die späte Reaktion. Ich werde das mit fpkill einmal ausprobieren und mich dann nochmal dazu melden.
Danke für Deinen Hinweis.

Viele Grüße

Josch
jscnetcore
 
Beiträge: 19
Registriert: 31. Jul 2013, 10:34
OS, Lazarus, FPC: Debian Squeeze Linux (L 1.0.8 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried