私はユーザーに有効にして欲しい、そして機能するネットワーク接続を必要とするいくつかのsystemdユーザーサービスファイルを書きました。私はそれが次のように簡単だと思った:
Wants=network-online.target
After=network-online.target
ただし、サービスの開始が早すぎるようで、次のようjournalctl
に表示されます。
network-online.target: Cannot add dependency job, ignoring: Unit network-online.target failed to load: No such file or directory.
それから私はもっと検索してみました
Wants=network.target
After=network.target
そしてしたsudo systemctl enable systemd-networkd-wait-online.service
。
今私は持っていjournalctl
ます:
network.target: Cannot add dependency job, ignoring: Unit network.target failed to load: No such file or directory.
また、サービスの開始が早すぎます。
そのメッセージはそこにあるはずですか?問題をデバッグするにはどうすればよいですか?
編集:理由は単純で、Arch Wikiで具体的に述べられています:
systemd --user
プロセスとは別のプロセスとして実行されsystemd --system
ます。ユーザーユニットは、システムユニットを参照したり、システムユニットに依存したりすることはできません。
このフォーラムの投稿は、簡単な解決策を提案しているようです。link
ユーザーとして必要なシステムユニットを使用し、ユニット検索パスで利用可能なシンボリックリンクを作成する必要があります。
その後、No such file or directory
メッセージは表示されませんが、ネットワークがオンラインになった後でもサービスを実際に実行することはできません。network.target
、network-online.target
およびをリンクしようとしましたがsystemd-networkd-wait-online.service
、ユニットをそれぞれに依存するように設定しても成功しませんでした。ユーザーモードでリンクユニットのステータスを確認すると、 それらのすべてが死んでいます。たとえば:
$ 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.
ただし、network-online.target
リンク後はユーザーモードでアクティブになっています。
$ 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.