LinuxForum.Fans
Тема

Асинхронное выполнение команд

Автор: TerMih 22 сообщений 3622 просмотров
#181551
TerMih написал:
while true ; do mplayer -vo xv "03446"* || exit 1; done. РАБОТАЕТ!

команд много. А если
[console]while mplayer -vo xv "03446"*; do :; done.[/console]
?

#181563

вот только причём тут сабж?

В сабже надо было-бы делать как-то так:

text
#!/bin/bash

cat >async2.sh <<EOT #!/bin/bash

function usr1_f { echo "\$0[\$\$]: получен сигнал SIGUSR1" }

trap 'usr1_f' SIGUSR1

MY_PID=\$\$ echo "\$0 started, my PID: \$MY_PID" while true; do sleep 1 echo "\$0 runing..." done

exit

EOT

chmod +x async2.sh

./async2.sh & ASYNC2_PID=$!

echo "$0: my PID: $$, ASYNC2_PID: $ASYNC2_PID"

sleep 3

kill -s SIGUSR1 $ASYNC2_PID

sleep 3

kill $ASYNC2_PID

тут работают одновременно 2 сценария:
async.sh
и
async2.sh
Первый запускает второй, и через 3 сек. передаёт второму сигнал SIGUSR1. Затем, ещё через 3 сек, первый убивает второй сценарий, и сам заканчивает работу.

Войдите или зарегистрируйтесь, чтобы ответить.