Sha256: 9bff1b14ffbb96ae3ab0909322c89f2808bf84e0566aa50596da60eb90a94d5c
Contents?: true
Size: 1.06 KB
Versions: 6
Compression:
Stored size: 1.06 KB
Contents
require "foreman/export" class Foreman::Export::Inittab < Foreman::Export::Base def export app = self.app || File.basename(engine.directory) user = self.user || app log_root = self.log || "/var/log/#{app}" inittab = [] inittab << "# ----- foreman #{app} processes -----" engine.procfile.entries.inject(1) do |index, process| 1.upto(self.concurrency[process.name]) do |num| id = app.slice(0, 2).upcase + sprintf("%02d", index) port = engine.port_for(process, num, self.port) inittab << "#{id}:4:respawn:/bin/su - #{user} -c 'PORT=#{port} #{process.command} >> #{log_root}/#{process.name}-#{num}.log 2>&1'" index += 1 end index end inittab << "# ----- end foreman #{app} processes -----" inittab = inittab.join("\n") + "\n" if fname FileUtils.mkdir_p(log_root) rescue error "could not create #{log_root}" FileUtils.chown(user, nil, log_root) rescue error "could not chown #{log_root} to #{user}" write_file(fname, inittab) else puts inittab end end end
Version data entries
6 entries across 6 versions & 1 rubygems