У меня есть простой файл рубинового скрипта:Трассирования скрипт притона
#!/usr/bin/env ruby
puts "Hello World"
Когда я запускаю это, используя Трассирование:
$ strace -s 100 -f ./script2
Я получаю следующую последовательность успешных execve
вызовов:
execve("./script2", ["./script2"], [/* 85 vars */]) = 0
execve("/home/omar/.rvm/rubies/ruby-2.3.1/bin/ruby", ["ruby", "./script2"], [/* 85 vars */]) = 0
Этим я ожидал присутствовать, но на выходе нет строк, которые выполняют /usr/bin/env
команда. Почему это так? Вызывает ли команда env
системный вызов execve
? Я хочу знать последовательность событий, которая заканчивается с бинарным интерпретатором ruby
.
Это то, что я искал, спасибо. –