Shutdown Experiment
The Shutdown experiment issues a system call to shut down or reboot the operating system on which the target is running.
Reboot Behavior
The <span class="code-class-custom">reboot</span> flag allows you to optionally tell Gremlin to "restart" target systems instead of shutting them down. Gremlin does not perform any validation upon target system startup after issuing a reboot. It's possible target systems never actually start back up due to the constraints within which they run. For example, issuing a <span class="code-class-custom">reboot</span> against target containers may trigger those containers to be reaped. This is common behavior in Kubernetes.
Linux
The Shutdown experiment issues a <span class="code-class-custom">reboot</span> Linux syscall. See: reboot(2)
When this experiment is run against a host, this syscall behaves just as if you issued a <span class="code-class-custom">reboot</span> from the command line. It is considered a graceful shutdown in that it will issue a <span class="code-class-custom">SIGTERM</span> to all running processes, giving them a chance to terminate cleanly.
When this experiment is run against a container, otherwise known as a nested PID namespace, this syscall terminates the processes immediately with a <span class="code-class-custom">SIGKILL</span>. See: pid_namespaces(7)
This experiment requires the <span class="code-class-custom">SYS_BOOT</span> capability, which is enabled by default at installation time. See capabilities(7)
Windows
The Shutdown experiment issues an ExitWindowsEx API call. Before shutting down, this system call sends the WM_QUERYENDSESSION message to all applications to determine if they can be terminated.
Options