def status(command)
al_root
pn = Pathname.new(AL_ROOT)
unless pid_file = find_pid(pn.join("tmp", pn.basename.to_s + ".pid"))
$stderr.puts "No pid_file found! Autumn may not be started."
exit 1
end
puts "Pid file #{pid_file} found, PID is #{pid = File.read(pid_file).chomp}"
unless is_running?(pid.to_i)
$stderr.puts "PID #{pid} is not running"
exit 1
end
if is_windows?
wmi = WIN32OLE.connect("winmgmts://")
processes, ours = wmi.ExecQuery("select * from win32_process where ProcessId = #{pid}"), []
processes.each { |p| ours << [p.Name, p.CommandLine, p.VirtualSize, p.CreationDate, p.ExecutablePath, p.Status ] }
puts "Autumn is running!\n\tName: %s\n\tCommand Line: %s\n\tVirtual Size: %s\n\tStarted: %s\n\tExec Path: %s\n\tStatus: %s" % ours.first
else
require "pathname"
if File.directory?(proc_dir = Pathname.new("/proc"))
proc_dir = proc_dir.join(pid)
if stat_file = proc_dir.join("stat") and stat_file.file?
stats = File.read(stat_file).split
puts "Autumn is running!\n\tCommand Line: %s\n\tVirtual Size: %s\n\tStarted: %s\n\tExec Path: %s\n\tStatus: %s" % [
File.read(proc_dir.join("cmdline")).split("\000").join(" "),
"%s k" % (stats[22].to_f / 1024),
File.mtime(proc_dir),
File.readlink(proc_dir.join("exe")),
stats[2]
]
exit
end
end
puts "Autumn process #{pid} is running!"
begin
puts %x{ps l #{pid}}
rescue
puts "No further information available"
end
end
end