2015-06-10 16 views
5

Używam kilku skryptów Pythona na Beaglebone Black, oba uruchomione w init przez systemd. Zauważyłem wczoraj, że mój flash eMMC był całkowicie pełny, a powodem było to, że miałem 1,8 gigabajta plików dziennika. Wygląda na to, że standardowe wyjście tych skryptów (generują dużą ilość danych do celów debugowania) jest rejestrowane zarówno w/var/log/syslog i /var/log/daemon.log. Ponadto,/var/log/messages ma mnóstwo wpisów o "ograniczeniu szybkości".Procesy uruchomione przy użyciu systemd logują się do/var/log/syslog i /var/log/daemon.log

Teraz zakładam, że mogę to naprawić, wyłączając standardowe wyjście dla tych skryptów. Wolałbym jednak zachować tę zdolność i jakoś powiedzieć systemdowi, aby nie rejestrował tych danych. Jednak nie udało mi się znaleźć informacji na ten temat.

Oto przykład z mojego obecnego pliku .service:

[Unit] 
Description=Description of my process 
After=network.target 
[Service] 
Type=simple 
ExecStart=/opt/myprocess 
[Install] 
WantedBy=multi-user.target 

Należy zauważyć, że pierwotnie miał syslog.target jako „po” cel, tylko dlatego, że przykładowo ja następującym miał. Ale od tego czasu usunąłem go i wydaje się, że nie rozwiązuje problemu.

Każda pomoc lub wgląd w ten problem byłby bardzo doceniany.

Edit: Może znalazłem odpowiedź tutaj:

http://www.kibinlabs.com/systemd-logging-tricks/

Dodawanie StandardOutput = null i zobaczyć czy to rozwiązuje go. Wygląda obiecująco.

Edytuj 2: Tak.

Odpowiedz

2

SystemD nie rejestruje plików w /var/log samodzielnie, nigdy.

Jeśli w dzienniku są wyświetlane komunikaty /var/log, oznacza to, że w systemie działa demon "syslog", który odbiera komunikaty dziennika (a), czytając dziennik systemd, lub (b) przez aplikacje korzystające bezpośrednio z syslog .

Po prostu wyłączenie demona syslog uniemożliwiłoby zapisywanie plików w /var/log. Wiadomości nadal będą zapisywane w dzienniku systemowym, ale dostępne są dość elastyczne kontrolki, aby ograniczyć ilość miejsca używanego przez te pliki. Aby uzyskać więcej informacji, patrz the journald docs.