Меня это интересует больше с точки зрения администратора сервера, чем со стороны разработчиков.
В качестве примера из реальной жизни, скажем, у меня есть строка в ps aux, которая показывает:
usercom 1696 0.1 0.2 34104 4556 ? Ss 07:33 0:20 ./mail
Не очевидно, что это скрипт на perl, но я могу определить его, выполнив «lsof -p 1696», который отображает (в дополнение к другим вещам):
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
perl 1693 usercom txt REG 0,49 17326 99846241 /home/virtfs/usercom/usr/local/bin/perl
Итак, это говорит мне, что это скрипт, выполняющийся в интерпретаторе perl для этого пользователя (в openvz).
Если я посмотрю на cwd для этого скрипта, то получится каталог, в котором нет исполняемого файла «mail».
Вопрос Какие существуют методы для определения «происхождения» perl-кода, который выполняется в данный момент (с точки зрения администратора сервера). Я пришел к выводу, что на самом деле не существует способа абсолютно точно определить «источник» запущенного сценария Perl, поскольку $ 0 очень легко манипулировать. Кроме того, можно передать код в perl или проверить его. Тем не менее, кто-нибудь знает какие-либо хорошие способы отслеживания корня сценария Perl?