Поскольку у вас все равно есть Ubuntu, вам не нужно устанавливать другой дистрибутив. Иметь в загрузчике запись, которая запускает одну программу вместо обычной сессии. То есть, сделайте загрузчик по умолчанию
linux /vmlinuz root=/dev/sda ro init=/usr/local/sbin/simple-ftp-only
(кроме части init=...
, скопируйте то, что уже есть в записи по умолчанию). Вы можете использовать одно из многих мультизагрузочных решений.
Сценарий simple-ftp-only
, вероятно, просто настроит сеть (вызовите ifconfig
для установки фиксированного IP-адреса, вызовите route
, если вам нужно связаться с узлом, не входящим в локальную сеть) и запустит TFTP или FTP-сервер. И, возможно, предложите способ перезагрузки в "настоящую" систему.
Вместо альтернативного init
вы можете поместить TFTP-сервер в initramfs. Если вы сделаете это, вам не нужно будет ничего менять в загрузчике, но вместо этого вам нужно будет подправить скрипты initramfs. Основные скрипты находятся в /usr/share/initramfs-tools/scripts
; вы можете добавить свои собственные в /etc/initramfs-tools/scripts
.
TL; DR Мой сценарий убивает сам себя перед тем, как убить процесс Appium.
Проблема заключалась в названии моего скрипта, содержащем appium в названии. Код $ (ps aux | grep 'appium' | awk '{print $ 2}')
получает pid / bin / bash, на котором выполняется сценарий /path/to/kill_appiums.sh. А потом кажется, что он убивает скрипт, который должен убивать процесс appium. Тогда некому убить процесс appium, и он остается активным:)