Как сделать nohup chroot процесса?

Проблема такая. Надо запустить процесс "в фоне", только вот беда в том, что процесс надо запускать в chroot-е.

Вот нормальный ход команды:

termux@termux: ~ $ su
root@android: ~ # chroot /data/local/devuan4 /bin/su -l
root@devuan4: ~ # cd linux/linux-6.0
root@devuan4: ~/linux/linux-6.0 # bash run.sh
# А там команда make...
    LD vmlinux.o

И вот на этой стадии поднимается OOM киллер, который, по сути, обрывает сборку ядра. Возникла идея сделать nohup - но как это правильно сделать?

Просто, тут есть проблема. Вот как запускается make:

zygote64
|- com.termux
|  |- zsh
|  |  |- /sbin/su
-------------------------------------------------------------------------------------------------
|  |  |  |- chroot /data/local/devuan4 /bin/su -l
|  |  |  |  |- /bin/bash
|  |  |  |  |  |- bash run.sh
|  |  |  |  |  |  |- make -j6 ARCH=x86_64 SUBARCH=x86_64 CROSS_COMPILE=/usr/bin/x86_64-linux-gnu-

Но по факту все, что идёт после su, запускается от magiskd (такие особенности работы Magisk. Так что запущенный из Termux-а su лишь ожидает конца дочерней сессии), так что реальная картина такая:

/init
|- magiskd
|  |- /sbin/su
|  |  |- chroot /data/local/devuan4 /bin/su -l
|  |  |  |- /bin/bash
|  |  |  |  |- /bin/bash run.sh
|  |  |  |  |  |- make -j6 ARCH=x86_64 SUBARCH=x86_64 CROSS_COMPILE=/usr/bin/x86_64-linux-gnu-

Но, как я уже сказал, поднимается OOM киллер, который "гасит" терминал, а вместе с ним - и сборку ядра.

Вопрос: как же заставить команду make работать даже в случае, если упадёт Termux, zygote или даже сам magiskd? Видно же, что сборка vmlinux требует нехилой нагрузки на телефон...

Запустить по USB через adb - сомнительная затея, т к может упасть сам adbd, а вместе с ним - и adb сессия:

/init
|- adbd
|  |- /system/bin/sh
|  |  |- chroot /data/local/devuan4 /bin/su -l
|  |  |  |- /bin/bash
|  |  |  |  |- /bin/bash run.sh
|  |  |  |  |  |- make -j6 ARCH=x86_64 SUBARCH=x86_64 CROSS_COMPILE=/usr/bin/x86_64-linux-gnu-

Ответы (1 шт):

Автор решения: RandomDice 779

Надо было просто так сделать:

termux@termux: ~ $ su
root@android: ~ # chroot /data/local/devuan4 /bin/su -l
root@devuan4: ~ # cd linux/linux-6.0
root@devuan4: ~/linux/linux-6.0 # exec nohup bash run.sh

→ Ссылка