Как перезагрузить фоновый процесс?

Для Emacs однако, существует специальный пакет, названный emacs23-el в соответствии с Ubuntu, которая включает все el-файлы Emacs и устанавливает их вместе с elc-файлами. Это имеет преимущество, что можно непосредственно посмотреть на функциональные и определения переменной от Emacs. Скажите, что Вы хотите посмотреть на то, как функция string-insert-rectangle определяется. Вы поражаете C-h f string-insert-rectangle, и буфер Справки появляется с документацией, говоря, что это определяется в rect.el. Если Вы нажимаете на rect.el Emacs, автоматически показывает функциональное определение.

3
26.04.2012, 21:56
2 ответа

Короткий ответ - нет.

Длинный ответ: Вы на самом деле называете интерпретатор Python. Тот интерпретатор загружает script.py и анализирует его.

При изменении сценария, он должен перезагрузить файл и запуститься с начала, так как интерпретатор не имеет никакого способа знать, какая часть была изменена.

Теперь, если Ваша цель состоит в том, чтобы просто сигнализировать, чтобы Python перезагрузил/перезапустил сценарий, можно перенести его в сценарий оболочки:

#!/bin/sh
LINE="python script.py"
stop()
{
  pkill -f "$LINE"
}
clean()
{
  stop
  exit 0
}
trap stop 1
trap clean 9 15
while true
  do
    $LINE &
    wait
done

Можно теперь запустить тот сценарий оболочки (в фоне, с nohup, если Вам нравится). При отправке Сигнала HUP в него это перезапустит процесс Python.

При уничтожении процесса обертки, сценарий Python завершится, также.

Я не протестировал свой сценарий - но представление должно быть четким.

5
27.01.2020, 21:13
  • 1
    я также запланировал создать сценарий обертки также, так как у меня было чувство, которое, что я спросил, не могло бы быть возможно. Но моя мысль была неопределенна, и Ваш сценарий помещает меня в хорошее направление. Огромное спасибо. –  Animesh 27.04.2012, 03:43

можно использовать, уничтожают-USR1 PID или pidof script.py также-9 является жестоким, чтобы завершить процесс, попробовать-15 за корректный выход.

2
27.01.2020, 21:13
  • 1
    я думал 9, был для SIGTERM, и я был неправ. Спасибо за указание на него. 15 был тем, что я намеревался использовать также. –  Animesh 27.04.2012, 03:39

Теги

Похожие вопросы