Z jakiegoś powodu pojawia się błąd podczas aktualizacji apport , którego przyczyną jest
% sudo service apport start
start: Job failed to start
W sysvinit mogłem debugować tego rodzaju problem, uruchamiając np
sudo sh -x /etc/init.d/whatever start
ale wydaje się, że nie można tego przypisać do Upstart. Co mam teraz spróbować?
Okazuje się, że istnieje obejście , które pozwoli na kontynuowanie instalacji. Ale nadal interesuje mnie ogólne pytanie, w jaki sposób śledzić skrypt.
/var/log/syslog
.Odpowiedzi:
Wszystkie poniższe informacje (i znacznie bardziej przydatna pomoc Upstart) pochodzą z książki kucharskiej Upstart . Sekcja 18 obejmuje debugowanie. http://upstart.ubuntu.com/cookbook/#debugging
W tym konkretnym przypadku śledzenia sekcji „skryptowej” zadania Upstart należy dodać następujące wiersze bezpośrednio pod słowem „skrypt”:
Przyczyną tego nieparzystego położenia jest to, że /dev/.initramfs/ jest dostępny na bardzo wczesnym etapie rozruchu, przed załadowaniem głównego systemu plików, i nadal jest dostępny po uruchomieniu. Zgaduję z apportem, jednak prawdopodobnie nie musisz używać tej ścieżki. Mimo to miło jest poznać tę opcję.
Należy również zauważyć, że wszystkie skrypty są uruchamiane za pomocą
set -e
dowolnego polecenia, które zakończy się niepowodzeniem, całkowicie je opuści. To ma sens, ponieważ należy bardzo uważać, uruchamiając skrypty jako root.Gorąco polecam zapoznanie się z książką kucharską Upstart, do której odsyłam, ogólnie dla wszystkich osób pracujących z zadaniami Upstart.
źródło
set -x
jak sugerujesz. Zastanawiałem się głównie, czy można to zrobić w bardziej przejrzysty sposób.setuid
isetgid
są wykorzystywane w pracy.Upstart rejestruje wykonanie usługi w pliku dziennika o tej samej nazwie w
/var/log/upstart/your-service-name.log
. To powinno być pomocne.źródło
set -x
, prawdopodobnie tam by się pojawił.journalctl