Я пытаюсь остановить заставку во время работы Skype. Я пытаюсь сделать это в сценарии bash (я хотел бы сделать это в Bash). Сценарий bash довольно прост: я запускаю Skype, и пока работает Skype, я хотел бы, чтобы сценарий отключил скринсейвер. Когда я закрываю Skype, я хочу, чтобы скринсейвер включался.
Мой скрипт выглядит следующим образом:
##############
my_script.sh
#!/bin/bash
skype &
screensaver.sh &
PID=$(ps -opid= -C mousepad)
while [[ ( -d /proc/$PID ) && ( -z `grep zombie /proc/$PID/status` ) ]]; do
sleep 1
done && killall screensaver.sh && xdotool mousemove 100 100
##############
screensaver.sh # It's a script to move the mouse every 300s
#!/bin/bash
while [ 1 ]; do
xdotool mousemove 000 000 &
sleep 300
xdotool mousemove 000 001 &
sleep 300
done
Скрипт проходит через предложение while без остановки, пока работает skype , Мои знания о программировании ограничены, поэтому я хотел бы получить простое объяснение. Спасибо за любые идеи.
Наконец, я получил решение благодаря DopeGhoti: https://unix.stackexchange.com/questions/342936/bash-how-to-make-a-process-works-while-skype-is-working[!d0 ]
#!/bin/bash
skype &
skype_PID=$!
screensaver.sh &
process_PID=$!
wait $skype_PID
kill $process_PID
Спасибо Гуннару за вашу помощь.