class Edaemon::Server
Constants
- ApplicationAllreadyRunnedError
- BlockNotSettedError
- Error
- LOG_FILE_PATH
- PID_FILE_PATH
- STARTED
- STOPPED
Attributes
block[RW]
Public Class Methods
new(block: nil)
click to toggle source
# File lib/edaemon/server.rb, line 14 def initialize(block: nil) @block = block end
Public Instance Methods
start()
click to toggle source
TODO: Конфиг лога TODO: Конфиг пид файла
# File lib/edaemon/server.rb, line 20 def start # TODO: simplecov raise почему не подсвечивается raise ApplicationAllreadyRunnedError if status == STARTED raise BlockNotSettedError unless block pid = fork_block! save_pid!(pid: pid) pid end
status()
click to toggle source
# File lib/edaemon/server.rb, line 30 def status pid_runned?(pid: saved_pid) ? STARTED : STOPPED end
Private Instance Methods
fork_block!()
click to toggle source
# File lib/edaemon/server.rb, line 48 def fork_block! # TODO: Переделать не на call из блока а на простой вызов переданного метода Kernel.fork do STDOUT.reopen(File.open(LOG_FILE_PATH, 'a')) STDOUT.sync = true block.call end end
pid_runned?(pid:)
click to toggle source
# File lib/edaemon/server.rb, line 44 def pid_runned?(pid:) Edaemon::Helper::Process.pids.include?(pid) end
save_pid!(pid:)
click to toggle source
# File lib/edaemon/server.rb, line 57 def save_pid!(pid:) File.open(PID_FILE_PATH, 'w') { |f| f.write("#{pid}\n") } end
saved_pid()
click to toggle source
# File lib/edaemon/server.rb, line 38 def saved_pid return unless File.exist?(PID_FILE_PATH) File.open(PID_FILE_PATH).read.to_i end