[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: linux 2.4.x and /proc/ANYPID/environ - is it emtpy?



Здравствуйте,

Не знаю, у меня оно меняет именно наименование процесса, то, что отображает ps,
/home/jeg/temp/arg0 > ./arg
10970
тут оно спит и ждет

#ps -ax|grep some
Bad syntax, perhaps a bogus '-'?
10970 tty10    S      0:00 something
10971 tty9     S      0:00 sh -c ps -ax|grep some
10973 tty9     S      0:00 grep some

#cat /proc/10970/environ
ing/home/jegPOSTGRES_INCLUDE=/usr/local/pgsql/includeLC_MESSAGES=ru_RU.KOI8-RHZ=100HOSTNAME=bikerLS_OPTIONS=-
.....

О том, что так писать неправильно, я знаю, это ж просто пример.

Но, если смотреть top'ом, то ни моя программа, ни Ваш скрипт не изменяют
своего наименования.

On Tue, Jan 08, 2002 at 04:49:46PM +0400, Vlad Harchev wrote:
>
>  Нет, Ваш С-аналог - некорректен. В perl $0 - это имя, под которым показывают
> данный процесс программы типа top и ps (очень полезная вещь для мониторинга
> состояния всяких демонов, а также чтобы делать killall для всех демонов в
> одном состоянии и пр.) (эта практика используется и sendmail'ом тоже - он
> меняет имя в соответствии с тем, чем сейчас занимается когда он чем-то
> действительно занимается). В С присвоение значения argv[0] естественно не
> изменит имя (и вообще, не известен размер буфера указываемого argv[0] - просто
> так туда копировать - опасно), под которым процесс показывается ps и top - для
> того, чтобы добиться того же эффекта, что и присвоение $0 в перле, в С-шном
> аналоге надо вызвать какие-то системно-зависимые и малодокументированные (и
> естественно непортабельные на другие юниксы) функции.

--
Elena Egorova



Reply to: