Jak wysyłasz dane wyjściowe skryptu upstart do terminala, aby znaleźć ślady zwrotne w kodzie python? Na zawsze zabiera mnie robienie rzeczy bez śladów, które zajmowały tylko sekundę. Muszę wykonać kilka wywołań zapisu plików, aby wyśledzić błędy. To, co wcześniej zajęło znalezienie drugiego śladu wstecz, zamienia się w kilka minut. To jest nieszczęśliwe. Trwa to już od kilku tygodni i mam tego dość. czy ktoś mógłby o tym mówić? Mam wrażenie, że ponownie używam asemblera bez debuggera.
16
/var/log/upstart
. Naprawdę przydatne, dziękuję.W książce kucharskiej Upstart znajduje się cała sekcja na temat technik debugowania . Najłatwiejszą rzeczą, jaką możesz zrobić, jest dodanie
--debug
argumentów jądra, co zwiększy gadatliwość upstart i zrzuci wszystko do syslog. Tak, debugowanie jest skomplikowane, jest odzwierciedleniem złożoności sieci wymaganej do stworzenia równoległego systemu inicjującego. Jestem pewien, że jest miejsce na ulepszenia.źródło
Kiedy piszę demona python, wychwytuję wszystkie wyjątki i wrzucam do pliku dziennika. Używam nie tylko do debugowania, ale także podczas produkcji. Mam mały skrypt, który uruchamiam każdego ranka i który szuka czegoś niepokojącego w logach.
Oczywiście pomaga również w utrzymaniu działania demona.
Trochę przykładowego kodu (usuwam nieciekawe części):
Gdzie actua () jest prawdziwym demonem (pisze też, aby się zalogować). Zauważ, że mam również zmienną DEBUG w pliku ustawień, gdy jest to prawda, nie rozwidlam demona, więc jest uruchamiany na konsoli.
Demony
Demony są uniksowym odpowiednikiem usług Windows. Są to procesy działające w tle niezależnie od innych procesów. Oznacza to, że ich ojciec jest zwykle inicjowany i że są oderwani od jakiegokolwiek tty. Ponieważ są one niezależne, nie ma z góry określonego miejsca na umieszczenie ich wyników.
Istnieje wiele bibliotek i fragmentów Pythona do stworzenia demona, w powyższym przykładzie używam własnej funkcji, która łączy kilka pomysłów z wersji Steinar Knutsens i Jeff Kunces. To jest tak proste, jak to możliwe, pamiętaj, że rozwidlam dwa razy .
źródło