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: