Normal kullanıcı sistem servisleri için kayıt nerede ve neden yoktur?


26

Temel sistem kullanımını öğrenmeye çalışıyorum ve kullanıcı servis birimlerinde kafa karıştırıcı bir sorunla karşılaştım.

Systemctl ile sıradan servisler çalıştırırken, bazı servislere başladığımda , bu servis için tam günlüğü bulabilirim (stdout / stderr 'e ne yazdıysam dahil ), sudo journalctl --unit some.service komutunu çalıştırarak .

Örnek servicefile chatty.service örneğini göz önünde bulundurun :

[Service]
ExecStart=/usr/bin/echo "test from chatty.service"

Bu servis dosyasını ~ / .config / systemd / user / chatty.service dizinine koyduğumda ve systemctl --user start chatty.service dizinine koyduğumda çıktısını strout'a gönderilenleri ne düz journalctl ne de journalctl - -kullanıcı . Sadece her ikisinde de aşağıdaki çıktıyı alıyorum:

Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.

Ve journalctl --unit chatty.service hiçbir şey döndürmez ( --user olsun veya olmasın) hiç farketmez).

Aynı servis dosyasını / etc / systemd / system 'e taşıyarak ve sudo systemd ile çalıştırsam da chatty.service' i başlatıp sudo journalctl --unit chatty.service çalıştırdığımda aşağıdaki çıktıyı alıyorum :

Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service

Kullanıcı servis birimi bir şekilde iyi entegre görünmüyor gibi görünüyor, bu bekleniyor mu, bir şey mi eksik veya bir hata mı var?

SystemS 208 (varsayılan yükleme) ile openSUSE 13.1 x86-64 kullanıyorum.


Arch Linux'taki aynı sistem 208. Bu journalctl --user --user-unit chattybaşlat / durdur mesajlarını sistemden almak için kullanabilirsiniz , ancak en azından benim durumumda yankı işleminin çıktılarını değil. Yankılı mesajı alabilir journalctl --userveya başka bir filtre kullanabilirsiniz.
lilydjwg

Yanıtlar:


20

--user-unitSeçeneğini kullanın ve senin durumunda ...

journalctl --user-unit chatty

Günlük çıktısındaki "chatty.service testinden" stdout mesajını mı alıyorsunuz, yoksa sadece "chatty.service ..." ve "chatty.service 'yi başlatıyorsunuz." mesajlar?
Quantumboredom

Evet, işlemden çıktı almayı da başardım (örneğin, "chatty.service test" mesajı).
elynnaie

Beklediğim de buydu, ama burada göremiyorum. Hangi işletim sistemini (sürümüyle) çalıştırdığınızı sorabilir miyim?
Quantumboredom

Arch Linux 3.13.7-1. systemd versiyon 212.
elynnaie 31:14

2
Çıkışı şimdi ana gazetede görüyorum. Ama koşmayı denediğimde journalctl --useranlıyorum No journal files were found.ve bu journalctl --user-unit chattybenim için işe yaramadı.
CMCDragonkai

6

Necroposting, ancak bugün aynı sorunu çözdüm. Büyük olasılıkla journalctl --user-unit chattysizin için işe yaramadı çünkü siz onu kökten çalıştırın. Bununla birlikte, başına man journalctl, --user-unitgünlük girişleri yalnızca tarafından değil _SYSTEMD_USER_UNIT=, aynı zamanda tarafından da filtrelenir _UID=ve chattykök kullanıcı kimliği ile hiçbir hizmet yoktur , bu nedenle hiçbir giriş bulunmaz.

Muhtemelen journalctl --user-unit chattynormal kullanıcılarınızdan kaçmaya çalıştınız , ama anladım No journal files were found. Bunun nedeni, (ve Tüm kullanıcılara, özel kullanıcı dergilerine buradan erişilebilmeleri içinman journalctl burada kafa karıştırıcı olabileceği için) 2018’de Debian 9 gazetemde hala varsayılan olarak kalıcı değildir ( Storage=autoiçinde /etc/systemd/journald.confve /var/log/journal/yok) ve olmayan Kalıcı mod journaldtüm günlükleri tek bir yerde uyanmak böylece, bölme günlükleri desteklemez /run/log/journalbakınız - bölme varsayılan olarak açık olmasına rağmen SplitModeiçinde man journald.conf. Kalıcılığı etkinleştirmek bunu düzeltir.

TL; DR: koyarak kalıcılığı sağlayacak Storage=persistentkadar /etc/systemd/journald.confve birlikte journald yeniden sudo systemctl restart systemd-journald.

Alternatif olarak, ile arama sudo journalctl _SYSTEMD_USER_UNIT=chatty.service

Bazı detaylar https://lists.freedesktop.org/archives/systemd-devel/2016-Ekim/037554.html adresindedir.


2
Teşekkür ederim. Ben başlamıştı No journal files were opened due to insufficient permissions.izinlerini ayarlama hakkında bir kafa karıştırıcı "ipucu" ile, ama erişim kullanıcı günlükleri değil, sistem günlükleri çalışıyorum çünkü set izinlerine sahip olmamalıdır. Düzeltmen işe yaradı. Çok teşekkürler.
Rolf

3

V230 sistemine kadar--user-unit , kullanıcı biriminizin kayıtlarını görüntülemek için daha az sezgisel bayrağı kullanmak zorundaydınız :

journalctl --user-unit chatty

V230 sisteminden bu yana, şimdi --userve --unitbayraklarını beklediğiniz gibi birleştirebilirsiniz :

journalctl --user --unit chatty

--user --unitSözdizimi Ubuntu 17.10 beri desteklenmektedir.


2
"--User --unit" özelliği v230'da çalışıyor ... burada v232 çalışıyor ve bu özellik çalışmıyor
LeGEC
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.