def run(argv = [])
@options.parse!(argv)
pid_path = argv.delete_at(0)
dirname = Pathname.new('.').expand_path.basename.to_s
pid_path = File.join(Dir.pwd, dirname + '.pid') if pid_path.nil?
if File.directory?(pid_path)
pid_path = File.join(pid_path, File.basename(pid_path) + '.pid')
end
pid_path = Pathname.new(pid_path).expand_path.to_s
if !File.exist?(pid_path)
abort "The PID #{pid_path} does not exist"
end
pid = File.read(pid_path).to_i
puts 'Stopping the process using SIGINT'
begin
Process.kill('INT', pid)
rescue => e
abort "Failed to kill the process: #{e.message}"
end
sleep(2)
if is_running?(pid_path)
$stderr.puts "The process is still running, let's kill it with -9"
begin
Process.kill(9, pid)
rescue => e
abort "Failed to kill the process: #{e.message}"
end
end
File.unlink(pid_path) if File.exist?(pid_path)
puts 'Ramazement has ended, go in peace.'
end