5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/osctld/cli/exec.rb', line 5
def self.run
if ARGV.size < 3 || ARGV[1] != '--'
warn 'Usage: <settings file> -- <command> [arguments...]'
exit(false)
end
OsCtl::Lib::Logger.setup(:none)
CGroup.init
cfg = JSON.parse(File.read(ARGV[0]), symbolize_names: true)
SwitchUser.apply_prlimits(Process.pid, cfg[:prlimits])
SwitchUser.switch_to(
cfg[:user],
cfg[:ugid],
cfg[:homedir],
cfg[:cgroup_path],
syslogns_pid: cfg[:syslogns_pid]
)
Process.exec(*ARGV[2..])
end
|