Thread View: de.comp.os.unix
5 messages
5 total messages
Started by Jens Ittel
Wed, 31 Jan 1996 19:37
Aendern eines Prozesstabelleneintrags
Author: Jens Ittel
Date: Wed, 31 Jan 1996 19:37
Date: Wed, 31 Jan 1996 19:37
15 lines
1013 bytes
1013 bytes
Hallo, ich habe (mit C++ unter Unix) einen Daemon gebaut, der auf Anfragen von Kunden wartet. Kommt eine Anfrage eines Kunden, so fuehrt der Daemon ein fork() durch und startet die Bedienfunktion, die im Daemon-Code enthalten ist. In der Prozesstabelle taucht jetzt zweimal der Daemon-Eintrag auf. Gibt es eine Moeglichkeit den Eintrag so zu aendern, dass man bei ps -ef an Hand der Kommandozeile (und nicht des Eltern-Prozesses) sieht wer der Daemon und wer die Bedienung ist? Vielen Dank Jens
Re: Aendern eines Prozesstabelleneintrags
Author: J Wunsch
Date: Wed, 31 Jan 1996 23:14
Date: Wed, 31 Jan 1996 23:14
17 lines
1182 bytes
1182 bytes
Jens Ittel <ittel@student.uni-kl.de> writes: > In der Prozesstabelle taucht jetzt zweimal der Daemon-Eintrag auf. > Gibt es eine Moeglichkeit den Eintrag so zu aendern, dass man bei > ps -ef an Hand der Kommandozeile (und nicht des Eltern-Prozesses) sieht > wer der Daemon und wer die Bedienung ist? setproctitle(3), sofern Dein System sowas hat. Ist alles extrem systemabhängig, ggf. kannste noch mit dem Über- schreiben von argv[0] experimentieren. -- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)
Re: Aendern eines Prozesstabelleneintrags
Author: Joerg Koenig
Date: Thu, 01 Feb 1996 09:00
Date: Thu, 01 Feb 1996 09:00
25 lines
1162 bytes
1162 bytes
In article <310FC4F8.41C6@student.uni-kl.de>, ittel@student.uni-kl.de says... > >Hallo, > >ich habe (mit C++ unter Unix) einen Daemon gebaut, der auf Anfragen >von Kunden wartet. Kommt eine Anfrage eines Kunden, so fuehrt der >Daemon ein fork() durch und startet die Bedienfunktion, die im >Daemon-Code enthalten ist. > >In der Prozesstabelle taucht jetzt zweimal der Daemon-Eintrag auf. >Gibt es eine Moeglichkeit den Eintrag so zu aendern, dass man bei >ps -ef an Hand der Kommandozeile (und nicht des Eltern-Prozesses) sieht >wer der Daemon und wer die Bedienung ist? Ja -- indem man mittels exec() ein Programm anderen Namens startet :-) Ansonsten natuerlich nicht, da ja nunmal der Name des Prozesses der gleiche bleibt ... > >Vielen Dank > > Jens Joerg
Re: Aendern eines Prozesstabelleneintrags
Author: David-Michael Lincke
Date: Fri, 02 Feb 1996 17:09
Date: Fri, 02 Feb 1996 17:09
27 lines
1605 bytes
1605 bytes
Joerg Koenig (jko@adg.de) wrote: > In article <310FC4F8.41C6@student.uni-kl.de>, ittel@student.uni-kl.de says... > > > >Hallo, > > > >ich habe (mit C++ unter Unix) einen Daemon gebaut, der auf Anfragen > >von Kunden wartet. Kommt eine Anfrage eines Kunden, so fuehrt der > >Daemon ein fork() durch und startet die Bedienfunktion, die im > >Daemon-Code enthalten ist. > > > >In der Prozesstabelle taucht jetzt zweimal der Daemon-Eintrag auf. > >Gibt es eine Moeglichkeit den Eintrag so zu aendern, dass man bei > >ps -ef an Hand der Kommandozeile (und nicht des Eltern-Prozesses) sieht > >wer der Daemon und wer die Bedienung ist? > Ja -- indem man mittels exec() ein Programm anderen Namens startet :-) > Ansonsten natuerlich nicht, da ja nunmal der Name des Prozesses der > gleiche bleibt ... Aber klar doch. Unter BSD setproctitle(), ansonsten proprietäre Interfaces, z.B. pstat() unter HP-UX. dave -- David-Michael Lincke Institute for Information Management at USG EMail: dlincke@sgcl1.unisg.ch URL: http://www-iwi.unisg.ch/about/team/dal.html
Re: Aendern eines Prozesstabelleneintrags
Author: Olaf Titz
Date: Sun, 04 Feb 1996 17:22
Date: Sun, 04 Feb 1996 17:22
35 lines
1931 bytes
1931 bytes
Jens Ittel <ittel@student.uni-kl.de> wrote:
> Gibt es eine Moeglichkeit den Eintrag so zu aendern, dass man bei
> ps -ef an Hand der Kommandozeile (und nicht des Eltern-Prozesses) sieht
> wer der Daemon und wer die Bedienung ist?
Alle Lösungen, die ich dafür bisher gesehen habe, laufen darauf
hinaus, den durch argv[0] bezeichneten Speicherbereich zu
überschreiben. Vorsicht, mit Blanks oder Nullen auffüllen, sonst
kommen u.U. Reste des alten Namens zum Vorschein. Wenn der neue Name
länger ist, kann man u.U. die anderen Kommandozeilenargumente
heranziehen, die i.d.R. direkt hintereinander stehen, aber eigentlich
müßte man prüfen, ob das auch wirklich der Fall ist.
Folgendes scheint unter Linux zu funktionieren, keine Ahnung ob das
auf anderen Systemen auch geht:
/* Set my title */
n=argv[argc-1]+strlen(argv[argc-1])-argv[0];
memset(argv[0], ' ', n);
strncpy(argv[0], "-nntpd", n);
Unbedingt strncpy(), nicht strcpy() verwenden!
Korrekter wäre hier anstelle der ersten Zeile (Vorsicht ungetestet):
for (i=0,n=0; i<argc; ++i) {
n+=strlen(argv[i])+1;
if (argv[i+1]!=argv[0]+n+1)
break;
}
olaf
--
___ Olaf.Titz@inka.de or @{stud,informatik}.uni-karlsruhe.de ____
__ o <URL:http://www.inka.de/~bigred/> <IRC:praetorius>
__/<_ >> Just as long as the wheels keep on turning round
_)>(_)______________ I will live for the groove 'til the sun goes down << ____
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads