Для Solaris вы можете попробовать модуль procfs из CPAN . Несмотря на то, что этот модуль кажется довольно молодым, эта цитата звучит обнадеживающе:
Брайан Фаррелл прислал очень полезный патч, который обрабатывает
обследование аргв и среды процессов
кроме текущего запущенного процесса.
Я предполагаю, что это, вероятно, только начальная среда (точно так же, как файл environ
в linux), но, похоже, это то, что вы хотите?
В противном случае, хотя я вижу, что вы не хотите разветвляться, простое решение, вероятно, могло бы запустить ~ 20 строк C, чтобы создать небольшую программу, которая просто выплевывает среду в Solaris как точный эквивалент Linux environ
файл. У меня уже есть что-то очень похожее на Си. Если вам интересно, я могу опубликовать это.
EDIT (после чтения OpenSolaris pargs.c): буфер среды перераспределяется в Solaris при изменении среды, поэтому указатель psinfo может быть недействительным. Для пуленепробиваемого решения вам нужно выследить _environ. Это все, вероятно, больше хлопот, чем вам нужно ... pargs -e <pid>
может быть более приятной альтернативой UCB ps(1)
, если вы все же пойдете по маршруту форка.