Для Solaris вы можете попробовать модуль procfs из CPAN. Хотя этот модуль все еще кажется довольно молодым, эта цитата звучит обнадеживающе:
Брайан Фаррелл прислал очень полезный патч, который проверяет argv и окружение процессов, отличных от текущего процесса.
Я полагаю, что это, вероятно, всего лишь начальная среда (как и файл environ
в Linux), но, похоже, это то, что вы хотите?
В противном случае, хотя я вижу, вы говорите, что не хотите форкнуть, простым решением, вероятно, было бы запустить ~ 20 строк на C, чтобы создать небольшую программу, которая просто выводит среду на Solaris как точный эквивалент environ
файла Linux. У меня уже есть что-то очень похожее на C. Если интересно, могу выложить.
РЕДАКТИРОВАТЬ (после чтения OpenSolaris pargs.c): буфер среды перераспределяется в Solaris при изменении среды, поэтому указатель psinfo может быть недействительным. Чтобы получить пуленепробиваемое решение, вам нужно выследить _environ. Это, вероятно, больше хлопот, чем вам нужно ... pargs -e <pid>
может быть более приятной альтернативой UCB ps(1)
, если вы все же пойдете по пути развилки.
person
Martin Carpenter
schedule
07.02.2009