python demo.py -some arguments &
( sleep 120; kill -TSTP "$!") &
fg %1
O primeiro background python será iniciado e, em seguida, será iniciado um shell em segundo plano que sleep s por 120 segundos antes de enviar python o -TSTP - ou o sinal suspender . Isso não é estritamente idêntico a pressionar CTRL+C - para isso você deseja kill -INT "$!" - mas eu pensei que você gostaria de poder restaurá-lo novamente, pois isso é como fazer > CTRL+Z em vez disso.
Por último, a% job_de% foregrounds ID da tarefa fg - que, se esses forem os únicos dois processos na tabela %1 , será jobs .
E assim o seu python é executado, enquanto um demo er espera nas sombras.
Aqui está w / kill e uma espera de 5 segundos:
cat & ( sleep 5; kill -TSTP "$!" )& fg %1
cat
[1] + Stopped cat
Para fazer isso em um loop, você pode fazer:
(kill -TSTP 0); code=$?
python demo.py -some arguments & pid=$!
while (sleep 120;kill -TSTP "$pid")&
fg %1; [ "$?" = "$code" ]
do :; done