According to the original documentation of the `cloud-config`: https://cloudinit.readthedocs.io/en/latest/topics/examples.html#run-commands-on-first-boot > "if the item is a list, the items will be properly executed as if passed to execve(3) (with the first arg as the command)." In micro-config-drive, the lists are simply joined into one command and executed by shell: ``` #cloud-config --- preserve_hostname: true runcmd: - ls - ps - whoami - [ ls, -l, /tmp ] ``` There should be 4 commands executed. 3 in shell, 1 using `execve(3)` call. The last one instead of `execve` is executed in shell. ``` ucd[626]: [4.289228] lib: Executing: /bin/sh -c "ls -l /tmp " ```
According to the original documentation of the
cloud-config:https://cloudinit.readthedocs.io/en/latest/topics/examples.html#run-commands-on-first-boot
In micro-config-drive, the lists are simply joined into one command and executed by shell:
There should be 4 commands executed.
3 in shell, 1 using
execve(3)call. The last one instead ofexecveis executed in shell.