Как протестировать функцию UPSTART человечности, чтобы видеть, что мой сценарий перезапущен автоматически, если это уничтожается?

В последней человечности, которая поставляет lightdm, который поддерживает гостевую учетную запись,

Так установите lightdm и замените gdm, должен работать на Вас, которые сделали бы точно то же самое в Ubuntu 12.04:

apt-get install lightdm

3
06.01.2014, 12:38
2 ответа

Просто выполненный:

sudo status testing

это дает Вам состояние рабочего новомодного сервиса.

И с tail -f /var/log/syslog Вы видите, повторно мечет ли это икру.

"Привет Мировые" движения, я думаю, не идя никуда.

Я рекомендую тестировать с:

#!/usr/bin/python
import time
import os

with open('/var/tmp/testing.log', 'a') as fp:
    try:
        while True:
            print >> fp, "Hello World", os.getpid()
            fp.flush()
            time.sleep(5)
    except Exception as e:
        print >> fp, 'exception', e
        fp.flush()
        raise

и выполненный tail -f /var/tmp/testing.log в другом окне.

5
27.01.2020, 21:10
  • 1
    Это получает перепорождение каждых нескольких секунд? Или это будет видеть, не работает ли это или было уничтожено? В целом это продолжит запускать testing.py каждые несколько секунд? или это будет запускать его однажды и видеть, работает ли это или нет.. Если это не будет работать, то это перезапустит его снова? –  arsenal 06.01.2014, 12:52
  • 2
    Моя ошибка, мой testing.py не имел while True: –  Zelda 06.01.2014, 12:53
  • 3
    @Webby, почему Вы не пишете Привет Мир в файл для отладки с числом процесса? –  Zelda 06.01.2014, 12:54
  • 4
    Извините. В моем testing.py у меня есть Ваш пример сценария Python, который Вы упомянули мне в Вашем предыдущем ответе. Я думал, что у меня есть мой в Вашем примере да, PID становится измененным автоматически. Но если я использую свой HelloWorld, в то время как Истинный пример, PID не изменяется так, я принимаю, он проверит, работает ли мой сценарий Python или нет. Если это не будет работать, то только это запустит его снова? Иначе это ничего не сделает.. сценарий –  arsenal 06.01.2014, 12:59
  • 5
    @Webby Zelda имеет нет while true;, это просто печатает время однажды и выходит. Начиная с Вашего upstart задание имеет a respawn команда, это будет повторно запускать сценарий постоянно и, поэтому, изменяя его PID. спасибо –  terdon♦ 06.01.2014, 13:00

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

Так или иначе можно уничтожить PID, по имени (sudo pkill testing.py) или путем уничтожения всех рабочих процессов Python (решительный, но принятия это - единственное, выполняющее Вас, должен быть прекрасным): sudo killall python.

4
27.01.2020, 21:10
  • 1
    terdon. Из Вашего комментария я выяснил, что PID не должен изменяться, и затем я возвратился и проверил свой сценарий Python, и я сделал ошибку в своем сценарии, поскольку я думал, что у меня есть мой в то время как Истинный сценарий. –  arsenal 06.01.2014, 13:04

Теги

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