Ваш вопрос включает в себя два момента - запуск скрипта, при котором консоль не будет блокироваться (запуск в фоне) и отключение процесса от текущей консоли, чтобы не держать терминал открытым.
Первое - для запуска какого-либо процесса в фоне, в конец команды необходимо добавить знак &
т.е. для запуска двух скриптов:
./script1.py &
./script2.py &
оба скрипта теперь работают одновременно и в фоне, но при этом при закрытии консоли, процессы будут завершены. Чтобы этого избежать, после запуска скрипта, необходимо отсоединить его от текущей сессии шелла. Для этого есть команда disown <pid>
. Узнать pid только что запущенного процесса можно из переменной $!
. Т.о. ваш итоговый вариант запуска двух скриптов в фоне может быть таким:
./script1.py &
disown $!
./script2.py &
disown $!
Узнать что скрипт работает можно к примеру так
ps -aux|grep script1.py
И на всякий случай. Сразу встает вопрос "А как завершить фоновые процессы". Для этого нужно узнать pid процесса (команда pidof <name>
) и послать ему сигнал завершения (команда kill <pid>
)
kill `pidof script1.py`
kill `pidof script2.py`