This file is indexed.

/usr/bin/packet_worker_runner is in ruby-packet 0.1.15-5.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/ruby
PACKET_LIB_PATH = File.expand_path(File.dirname(__FILE__))
["lib"].each { |x| $LOAD_PATH.unshift(File.join(PACKET_LIB_PATH,"..",x))}

require "packet"

module Packet
  class WorkerRunner
    include Packet::NbioHelper
    def initialize args
      cmd_args = args.split(':')
      worker_name = cmd_args[2]
      initial_arg_data_length = cmd_args[3].to_i
      @worker_root = cmd_args[4]
      @worker_load_env = cmd_args[5]


      @worker_read_fd = UNIXSocket.for_fd(cmd_args[0].to_i)

      @worker_write_fd = UNIXSocket.for_fd(cmd_args[1].to_i)

      initial_arg_data = @worker_read_fd.read(initial_arg_data_length)

      Packet::WorkerRunner.const_set(:WORKER_OPTIONS,Marshal.load(initial_arg_data))
      require @worker_load_env if @worker_load_env && !@worker_load_env.empty?
      load_worker worker_name
    end

    def load_worker worker_name
      if @worker_root && (File.file? "#{@worker_root}/#{worker_name}.rb")
        require "#{@worker_root}/#{worker_name}"
        worker_klass = Object.const_get(packet_classify(worker_name))
        worker_klass.start_worker(:read_end => @worker_read_fd,:write_end => @worker_write_fd,:options => WORKER_OPTIONS)
      else
        require worker_name
        worker_klass = Object.const_get(packet_classify(worker_name))
        if worker_klass.is_worker?
          worker_klass.start_worker(:read_end => @worker_read_fd,:write_end => @worker_write_fd,:options => WORKER_OPTIONS)
        else
          raise Packet::InvalidWorker.new(worker_name)
        end
      end
    end
  end
end

Packet::WorkerRunner.new(ARGV[0])