0
一個巖組功能,我想編寫一個巖組的功能,看起來像:編寫可自動對文件重新運行一個命令保存
smartwatch [WATCH_FILE] [COMMAND_TO_RUN] [COMMAND_ARGS]
這樣WATCH_FILE
保存後,該COMMAND_TO_RUN
將運行並smartwatch
將等待該文件再次被保存。這對我在這種情況下會有所幫助:
smartwatch server.py python server.py
所以每次修改服務器文件時,服務器都會重新啓動。我聽說inotify-tools可能有幫助,所以我使用inotifywait
,但如果有人知道更好的工具,請告訴我。這是我到目前爲止:
smartwatch() {
WATCH=$1
CMD=$2
ARGS=$*[3,-1]
$CMD $ARGS &!
PID=$!
inotifywait -qq $WATCH
kill $PID
exec smartwatch $WATCH $CMD $ARGS
}
此解決方案相當緩慢,不是很優雅。任何人都知道一種更高效或至少更清潔的方法嗎?
inotifywait將完成對任何事件的發生。您可能需要指定「-e modify -e move_self -e delete_self」以防止任何進程讀取該文件時重新啓動守護進程。 –