2015-01-14 14:29:41 +09:00

39 lines
945 B
Ruby

class Fluentd
class Agent
class TdAgent
module Macosx
def start
backup_running_config do
detached_command("launchctl load #{plist}") && pid_from_launchctl
end
end
def stop
detached_command("launchctl unload #{plist}") && FileUtils.rm(pid_file)
end
def restart
dryrun && stop && start
end
def dryrun
detached_command("/usr/sbin/td-agent --dry-run -q --use-v1-config -c #{config_file}")
end
private
def plist
'/Library/LaunchDaemons/td-agent.plist'
end
def pid_from_launchctl
# NOTE: launchctl doesn't make pidfile, so detect pid and store it to pidfile manually
pid = `launchctl list | grep td-agent | cut -f1`.strip
return if pid == ""
File.open(pid_file, "w"){|f| f.write pid }
end
end
end
end
end