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

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



On Tue, 8 Jan 2002, Elena Egorova wrote:

 Hi, 

> Здравствуйте,
> 
> Не знаю, у меня оно меняет именно наименование процесса, то, что отображает 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=-
> .....

 Даже так..

 Кажется действительно проблемы в перле.. Пробовал 2 версии - древнейшую и
предпоследнюю - в обоих эта проблема..
 
> О том, что так писать неправильно, я знаю, это ж просто пример.
> 
> Но, если смотреть top'ом, то ни моя программа, ни Ваш скрипт не изменяют
> своего наименования.

 Если в top нажать 'c' (то есть включить 'show command line') то он будет
показывать $0 (то есть 'something'). Этот режим отключен по дефолту в top'е.

 Best regards,
  -Vlad
 
> 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: