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