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 >