Вызываю долго работающий процесс по ssh. И нужно, чтобы этот процесс не был убит. Пользователь может убить начальный процесс на своем хосте, и я ничего не могу с этим поделать.
Как сделать так, чтобы удаленный процесс не был убит, если первоначальный процесс был убит?
User -> user.sh -> SSH-to-remote -> long-running.sh
Он должен:
Я думал о чем-то, используя nohup, но пока это не сработало:
User -> user.sh -> SSH-to-remote -> init.sh -> long-running.sh
init.sh
#!/bin/bash
nohup ./long-running.sh >out.log 2>&1 </dev/null &
pid=$!
disown $pid
tail -f out.log &
wait $pid
long-running.sh (содержимое для тестирования)
#!/bin/bash
for i in $(seq 30)
do
echo $i
sleep 1
done
Это решение не не решает 2. Он не завершается при выходе из удаленного процесса.