Sha256: f2ad53ef8ddba4435c7512f10ce98a0938b10a7f14d67cf209a477332eee514c

Contents?: true

Size: 1017 Bytes

Versions: 30

Compression:

Stored size: 1017 Bytes

Contents

# encoding: utf-8

module Adhearsion

  # https://gist.github.com/1350729
  #
  # Eric Lindvall <eric@5stops.com>
  # 
  # Update the process name for the process you're running in.
  #
  # $0    => updates proc name for ps command
  # prctl => updates proc name for lsof, top, killall commands (...)
  #
  # prctl does not work on OS X
  #
  module LinuxProcName
    # Set process name
    PR_SET_NAME = 15

    class << self
      attr_accessor :error

      def set_proc_name(name)
        $0 = name # process name in ps command
        if error
          logger.debug error
          return false
        end
        return false unless LibC.respond_to?(:prctl)

        # The name can be up to 16 bytes long, and should be null-terminated if
        # it contains fewer bytes.
        name = name.slice(0, 16)
        ptr = FFI::MemoryPointer.from_string(name)
        LibC.prctl(PR_SET_NAME, ptr.address, 0, 0) # process name in top, lsof, etc
      ensure
        ptr.free if ptr
      end

    end

  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
adhearsion-2.6.4 lib/adhearsion/linux_proc_name.rb
adhearsion-2.6.3 lib/adhearsion/linux_proc_name.rb
adhearsion-3.0.0.rc1 lib/adhearsion/linux_proc_name.rb
adhearsion-3.0.0.beta2 lib/adhearsion/linux_proc_name.rb
adhearsion-3.0.0.beta1 lib/adhearsion/linux_proc_name.rb
adhearsion-2.6.2 lib/adhearsion/linux_proc_name.rb
adhearsion-2.6.1 lib/adhearsion/linux_proc_name.rb
adhearsion-2.6.0 lib/adhearsion/linux_proc_name.rb
adhearsion-2.5.4 lib/adhearsion/linux_proc_name.rb
adhearsion-2.5.3 lib/adhearsion/linux_proc_name.rb
adhearsion-2.5.2 lib/adhearsion/linux_proc_name.rb
adhearsion-2.5.0 lib/adhearsion/linux_proc_name.rb
adhearsion-2.4.0 lib/adhearsion/linux_proc_name.rb
adhearsion-2.4.0.beta3 lib/adhearsion/linux_proc_name.rb
adhearsion-2.4.0.beta2 lib/adhearsion/linux_proc_name.rb
adhearsion-2.4.0.beta1 lib/adhearsion/linux_proc_name.rb
adhearsion-2.3.5 lib/adhearsion/linux_proc_name.rb
adhearsion-2.3.4 lib/adhearsion/linux_proc_name.rb
adhearsion-2.3.3 lib/adhearsion/linux_proc_name.rb
adhearsion-2.3.2 lib/adhearsion/linux_proc_name.rb