Class: P2p2::P2pd
- Inherits:
-
Object
- Object
- P2p2::P2pd
- Defined in:
- lib/p2p2/p2pd.rb
Instance Method Summary collapse
-
#initialize(config_path = nil) ⇒ P2pd
constructor
A new instance of P2pd.
Constructor Details
#initialize(config_path = nil) ⇒ P2pd
Returns a new instance of P2pd.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/p2p2/p2pd.rb', line 58 def initialize( config_path = nil ) unless config_path config_path = File.( '../p2p2.conf.json', __FILE__ ) end unless File.exist?( config_path ) raise "missing config file #{ config_path }" end conf = JSON.parse( IO.binread( config_path ), symbolize_names: true ) p2pd_port = conf[ :p2pd_port ] p2pd_tmp_dir = conf[ :p2pd_tmp_dir ] unless p2pd_port p2pd_port = 2020 end unless p2pd_tmp_dir p2pd_tmp_dir = '/tmp/p2p2.p2pd' end unless File.exist?( p2pd_tmp_dir ) Dir.mkdir( p2pd_tmp_dir ) end title = "p2p2 p2pd #{ P2p2::VERSION }" puts title puts "p2pd port #{ p2pd_port }" puts "p2pd tmp dir #{ p2pd_tmp_dir }" if RUBY_PLATFORM.include?( 'linux' ) $0 = title pid = fork do $0 = 'p2p2 p2pd worker' worker = P2p2::P2pdWorker.new( p2pd_port, p2pd_tmp_dir ) Signal.trap( :TERM ) do puts 'exit' worker.quit! end worker.looping end Signal.trap( :TERM ) do puts 'trap TERM' begin Process.kill( :TERM, pid ) rescue Errno::ESRCH => e puts e.class end end Process.waitall else P2p2::P2pdWorker.new( p2pd_port, p2pd_tmp_dir ).looping end end |