Class: OsCtld::ContainerControl::Commands::WithMountns::Runner
- Defined in:
- lib/osctld/container_control/commands/with_mountns.rb
Instance Attribute Summary
Attributes inherited from Runner
#ctid, #log_file, #lxc_home, #pool, #stderr, #stdin, #stdout, #user_home
Instance Method Summary collapse
Methods inherited from Runner
#error, #initialize, #lxc_ct, #ok, #setup_exec_env, #setup_exec_run_env, #system_path
Constructor Details
This class inherits a constructor from OsCtld::ContainerControl::Runner
Instance Method Details
#execute(opts) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/osctld/container_control/commands/with_mountns.rb', line 41 def execute(opts) sys = OsCtl::Lib::Sys.new sys.setns_path( File.join('/proc', opts[:ns_pid].to_s, 'ns', 'mnt'), OsCtl::Lib::Sys::CLONE_NEWNS ) if opts[:chroot] sys.chroot(opts[:chroot]) # After chroot, we can no longer access syslog logger. Log to stdout # instead, which will be picked up by osctld supervisor and sent to # syslog from there. OsCtl::Lib::Logger.setup(:stdout) end if opts[:switch_to_system] SwitchUser.switch_to_system( '', opts[:ctrc].ct.root_host_uid, opts[:ctrc].ct.root_host_gid, '/' ) end ok(opts[:block].call) end |