ИНФОРМАЦИЯ: Я пользователь Emacs, который использовал для разработки мобильных приложений с реагирующим родным языком.
Описание
В последнее время я пытаюсьразработать приложение флаттера, привязанное к части hot-reload
, я надеюсь, что флаттер может перезагрузиться автоматически, когда я внесу изменения в lib/*dart
.
Я думаю о том, чтобы наблюдать за *Модификация 1014 *, как это происходит, автоматически передает r
процессу флаттера.
Как мне достичь процесса flutter run
?
Решение
Emacs Solution
После прочтения Горячая перезагрузка при сохранении снова и снова, я обновлял файл конфигурации Emacs:
(require 'dart-mode)
(defun auto-reload ()
(shell-command "kill -s SIGUSR1 $(cat /tmp/flutter.pid) && echo 'reload flutter...'"))
(add-hook 'dart-mode-hook
(lambda ()
(add-hook 'after-save-hook 'auto-reload nil 'make-it-local)))
Это очень просто, я не могу в это поверить ... убить процесс flutter run
, и он перезагрузится автоматически после отправки сигнала kill -SIGUSR1
на flutter run
через наш shell-скрипт.
Спасибо @pskink, я взял свой мозг и попробовал снова, затем проблема была решена.
Я проверил описание о linux signal
снова,Команда kill
, описанная как:
Отправляет сигнал указанному процессу, всем членам указанной группы процессов или всем процессам в системе.
Не просто грубое уничтожение процессов ... а вот описание kill
в командной строке:
kill [-s sigspec | -n signum | -sigspec] pid | jobspec
...or
kill -l [sigspec]
Однако флаг --pid-file
flutter описывается примерно так:
Укажите файл для записи идентификатора процесса.Вы можете отправить SIGUSR1 для запуска горячей перезагрузки и SIGUSR2 для запуска горячей перезагрузки.
Мы kill -SIGUSR1 $(cat /tmp/flutter.pid)
, так как мы посылаем сигнал SIGURS1
на flutter process
, вот что произошло.
Мне все еще интересно, можем ли мы просто отправить r
на «экран» процесса flutter run
?