Kullanıcıların etkinleştirmesini istediğim ve çalışan bir ağ bağlantısına ihtiyaç duyduğum birkaç sistemd kullanıcı hizmeti dosyası yazdım. Bunun kadar kolay olacağını düşündüm:
Wants=network-online.target
After=network-online.target
Ancak, hizmetler çok erken başlıyor gibi görünüyor ve journalctl
görüyorum:
network-online.target: Cannot add dependency job, ignoring: Unit network-online.target failed to load: No such file or directory.
Sonra daha fazla aradım ve denedim
Wants=network.target
After=network.target
ve yaptı sudo systemctl enable systemd-networkd-wait-online.service
.
Şimdi var journalctl
:
network.target: Cannot add dependency job, ignoring: Unit network.target failed to load: No such file or directory.
Ve tekrar hizmet çok erken başlar.
Bu mesaj orada mı olmalı? Sorunumda nasıl hata ayıklayabilirim?
EDIT : nedeni basit ve özellikle Arch Wiki'de belirtilmiştir :
systemd --user
işlemden ayrı bir işlem olarak çalışırsystemd --system
. Kullanıcı birimleri sistem birimlerine referans veremez veya bunlara bağlı olamaz.
Bu forum sonrası basit bir çözüm önermek gibi görünüyor: Ben link
kullanıcı olarak gerekli sistem birimi gerekir , böylece birim arama yolu üzerinde kullanılabilir bir sembolik oluşturmak.
Bunu yaptıktan sonra herhangi bir No such file or directory
mesaj görmüyorum , ancak ağ çevrimiçi olduktan sonra hizmetleri gerçekten çalıştıramıyorum. Ben bağlamayı denedi network.target
, network-online.target
ve systemd-networkd-wait-online.service
hiçbir başarı ile, her biri bağımlı benim birimleri ayarı. Bağlantılı birimin durumunu kullanıcı modunda kontrol ettiğimde, hepsi öldü, örneğin:
$ systemctl --user status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; linked; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
$ systemctl status network.target
● network.target - Network
Loaded: loaded (/usr/lib/systemd/system/network.target; static; vendor preset: disabled)
Active: active since Sat 2015-07-18 19:20:11 MSK; 3h 35min ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 18 19:20:11 calc-server systemd[1]: Reached target Network.
Jul 18 19:20:11 calc-server systemd[1]: Starting Network.
Ancak, network-online.target
bağladıktan sonra kullanıcı modunda etkin görebilirsiniz :
$ systemctl --user status network-online.target
● network-online.target - Network is Online
Loaded: loaded (/usr/lib/systemd/system/network-online.target; linked; vendor preset: enabled)
Active: active since Sun 2015-07-19 00:35:38 MSK; 2min 48s ago
Docs: man:systemd.special(7)
http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget
Jul 19 00:35:38 calc-server systemd[469]: Reached target Network is Online.
Jul 19 00:35:38 calc-server systemd[469]: Starting Network is Online.