Перезапустите kivy-программу соответственно python с помощью inotify

Я боюсь, что мой вопрос дубликат, но я не могу найти ответ. Возможно ты можешь помочь мне?

Я хотел бы перезапустить мою kivy-программу, если я сохраню файл kv или py.

Я пробовал с

inotifywait -mq -e close_write /home/name/kivy/ | while read FILE
do
  pkill python
  python /home/name/kivy/main.py
done

Если я изменяю файл в первый раз, запускается main.py, но если я изменяю его снова, мне нужно вручную закрыть программу перед ее перезапуском.

Вместо pkill python я также попытался использовать

kill $(ps aux | pgrep '[p]ython' | awk '{print $2}')

но с тем же результатом и той проблемой, которую закрывает mintMenu.py.

Должен ли я использовать что-то совершенно другое, чтобы inotify?

1 ответ

Я использую entr для достижения того же. После установки (например, через brew), просто запустите следующую команду в вашем рабочем каталоге /home/name/kivy/:

find . -name "*.py" -or -name "*.kv" | entr sh -c "pkill -f python main.py ; python main.py &"
Другие вопросы по тегам