最新記事

systemdが「欲しい」ターゲットをロードできない理由を確認する方法は?
systemd
systemd-journald

systemdが「欲しい」ターゲットをロードできない理由を確認する方法は?

systemdデフォルトのターゲットを持つUbuntu 20.04システムがありますgraphical.target。 $ systemctl get-default graphical.target 「必要」と「欲しい」の連鎖に従うと、最終的に単位graphical.targetファイルを「円」になりますwidget.target。 widget.target起動時にロードされる場合もあり、そうでない場合もあることがわかりました。これは、ロードに失敗したインスタンスを$ systemctl list-units --type target含まない出力として確認されます。widget.target 現在のデバイスは、widget.target最後に起動したときにロードに失敗した状態です。を使用している場合は、$ journalctl -u widget.target -b最後journalctlに起動した後に戻ってデバイスのログを確認してください-- No entries --。最後の起動以降に検索を拡張した場合、唯一のエントリはエラーではなく、widget.targetまったく関連していない一般的なエントリだけです。 systemd「希望する」ターゲットがロードされない理由を説明する他の方法はありますか? 追加情報 widget.targetその宛先のユニットファイル( にファイルとして表示される/etc/systemd/system/widget.target.wants/)の「WantedBy」を介して別のユニット、別の宛先が欲しい。他のターゲットはロードされているかどうかに関係なくロードされますwidget.target。 さらに、widget.targetそれ自体が4つのサービスが望むものでもある。widget.target出力によると、これらのサービスの1つはロードされているかどうかに関係なくロードされますが、3つはロードされません$ systemctl list-units --type service。 つまり、widget.target4つのサービスが希望するターゲットを望んでいます。widget.target5つのデバイスのいずれかをロードしてもロードするかどうかに違いはありません。

Admin

既存の Btrfs サブボリュームを *systemd-homed* に移行する方法
systemd
btrfs
home

既存の Btrfs サブボリュームを *systemd-homed* に移行する方法

私が間違っている場合は訂正してください。しかし、私の考えではLinux移行中システムホストホームディレクトリを管理します。 私のホームディレクトリは次の場所にあります。BTRFSサブボリューム。私は見たホームページ制御話すBTRFSサブボリュームがサポートされます。既存を移行する方法はありますか?BTRFSサブボリュームシステムホスト? 存在する既存のユーザーをsystemd-homedに変換するホームディレクトリ全体をコピーして貼り付ける方法は1つだけです。これは、次の理由で理想的ではありません。 私のホームディレクトリは非常に大きいです。 私は使うBTRFSバックアップ用のスナップショットです。コピーによって増分バックアップが破損し、バックアップディスクのサイズが非合理的に大きくなる可能性があります。 だから、ファイルをコピーせずに移行するより直接的な方法があるかどうか疑問に思います。

Admin

systemd: 'Unit' セクションの不明なキー名 'ConditionEnvironment'
systemd
systemd-unit

systemd: 'Unit' セクションの不明なキー名 'ConditionEnvironment'

私はsystemdバージョン246を使用しています。 $ systemctl --version systemd 246 (246.2-1-arch) +PAM +AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid そのドキュメントはConditionEnvironmentsystemd.unitのマンページにあります。ただし、次の単位ファイルで使用すると~/.config/systemd/user/i3-session-pre.target: [Unit] Description=i3 session Documentation=man:systemd.special(7) BindsTo=graphical-session-pre.target ConditionEnvironment=XDG_SESSION_DESKTOP=i3 マイユーザーログに次のエントリが表示されます。 systemd[599]: /home/****/.config/systemd/user/i3-session-pre.target:5: Unknown key name 'ConditionEnvironment' in section 'Unit', ignoring. また、systemd-analyze conditionこの状況を処理できません。 $ systemd-analyze condition ConditionEnvironment=XDG_SESSION_DESKTOP=i3 Cannot parse "ConditionEnvironment=XDG_SESSION_DESKTOP=i3". 私は何が間違っていましたか?

Admin

読み取り専用ファイルシステムでtimedatectlを使用してタイムゾーンを変更する
systemd
readonly
yocto

読み取り専用ファイルシステムでtimedatectlを使用してタイムゾーンを変更する

読み取り専用ファイルシステムでtimedatectlを使用してタイムゾーンを変更しようとしています。しかし、私はそれを行うことはできません。タイムゾーンを変更できないというエラーメッセージが表示されます。私はこれが読み取り専用ファイルシステムであり、これら3つのファイルに関連しているためだと思います。/etc -rw-r--r-- 1 root root 10 Jul 17 21:48 timezone lrwxrwxrwx 1 root root 29 Jul 17 21:48 localtime -> /usr/share/zoneinfo/Universal -rw-r--r-- 1 root root 15 Aug 14 22:08 timestamp timezoneとへのシンボリックリンクを作成する必要がありますかtimestamp? 今見ています。https://bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/1227520 私は彼らが同様の状況に直面していると思います。ただし、彼らは/ etc / localtimeへのシンボリックリンクも作成することをお勧めします。私が理解していないものは何ですか? どんな助けやアドバイスでもいただければ幸いです。 raspberrypi-cm3 poky Warriorsブランチに組み込みLinux環境を使用しています。

Admin

systemdを使用してLibre Officeを起動する
systemd
python
libreoffice

systemdを使用してLibre Officeを起動する

nginx RTMPサーバーからビデオフレームを要求するPythonスクリプトを作成しました。要求が空のバイト文字列として返されると、VLC / FFMPEGプロセスが終了し、libreofficeがImpressスライドショーとして表示されます。このPythonスクリプトは端末で正しく実行されますが、systemdで実行するとlibreoffice部分が失敗します。 Runは、htoplibreofficeを実行するために実行されたコマンドを示していますsoffice --impress --norestore -invisible --show test.pptx。 もちろん、画面には実際には何も表示されません。私が見る唯一のエラーは、次のエラーです。Can't get display これは私のユニットファイルです: [Unit] Description=Polls the RTMP Server for a valid video feed Wants=network-online.target After=network-online.target [Service] ExecStartPre=/bin/sleep 10 ExecStart=/usr/bin/python3 -u /home/pi/stream_script/launch_stream.py Restart=always User=pi [Install] WantedBy=multi-user.target VLCを起動するために、Pythonスクリプトで次のコード行を使用しました。 # Show the stream vlc_process = subprocess.Popen("cvlc --fullscreen --avcodec-threads=0 " + STREAM, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid) プロセスを終了する次のコマンド os.killpg(os.getpgid(vlc_process.pid), signal.SIGTERM) # Send the signal to all the process groups 私は確かにsystemdの専門家ではありませんが、以前は何の問題もなく何度も試してみましたが、グラフィックアプリケーションでは使用したことがありません。 Systemdはグラフィックリソースにアクセスできませんか? 比較的簡単な問題であればお詫び申し上げます...数日間迷っていましたが、解決策が見つかりませんでした。上記のエラーに関して私が調査した内容のほとんどは、ヘッドレスのlibreoffice操作に関連しています。

Admin

systemd-networkdを使用してIPv6ルーティングルールを追加するには?
systemd
systemd-networkd

systemd-networkdを使用してIPv6ルーティングルールを追加するには?

私はsystemd 242(Ubuntu Eoan)で実行しており、iproute2systemd-networkdを使用して次のコマンドと同じことをしようとしています。 ip -6 rule add from all table 1 pref 1000 これは私が持っているものですが、うまく/etc/systemd/network/10-eno1.networkいきません: [RoutingPolicyRule] Table=1 Priority=1000 Family=ipv6 私も試してみましたFamily=bothが、v4ルールのみが作成されました。 私は専門を読んだ。https://systemd.network/systemd.network.html#%5BRoutingPolicyRule%5D%20Section%20Optionsしかし、まだ何が間違っているのかわかりません。 私はこれをしたいので、systemd-networkdサービスやサービスに似たソリューションを書くことに興味はありませんExecStart=/sbin/ip blah blah。

Admin

Linuxで(自動)インストールを担当するサービス/デーモン/などは何ですか?
systemd
mount
kde
automounting

Linuxで(自動)インストールを担当するサービス/デーモン/などは何ですか?

私Makefile(ソースはこちら)それを使用ラズベリーパイ4アーチLinux .tar.gz イメージ/bootFATおよび(root)EXT4パーティションイメージを作成します/。このイメージは、後でSDカードを作成したり、ルートパーティションイメージをより小さなパーティションに分割するために使用されます。 私はKDEを使用してManjaro(Archベース)で実行しています。 問題は、通常、tarballでパーティションイメージを作成するために必要な一時パーティションのマウントポイントが停止していて利用できないように見えることですumount。 systemdには自動マウント魔法があるようで、KDEにもいくつかあるかもしれません。 以前は中断されたマウントポイントがたくさんありましたが、次の環境変数が見つかりました。 UDISKS_AUTOMOUNT_HINT:=never UDISKS_PRESENTATION_NOPOLICY:=1 UDISKS_SYSTEM_INTERNAL:=1 UDISKS_AUTO:=0 UDISKS_IGNORE:=1 これが役に立つようです。マウントポイントが少ない通常、マウントポイントは/boot常に存在します。それでは、尊重することができ、実際にマウントポイントを削除できるmount他の変数やパラメータ、または何かがありますか?umountそれとも、chroot / fakerootからすべてを生成できますか?

Admin

.timer 単位を使用して systemd .service を再起動します。
systemd
services
systemd-timer
systemd-unit

.timer 単位を使用して systemd .service を再起動します。

スクリプトを実行する次のシステム myscript.service ユニットがあります。 [Unit] Description=MyScript Wants=time-sync.target [Service] Type=oneshot RemainAfterExit=true ExecStart=/usr/local/bin/test.sh -a ExecStop=/usr/local/bin/test.sh -b [Install] WantedBy=multi-user.target 次のSystemd myscript.timerデバイスを使用して毎分再起動したいと思います。 [Unit] Description=Schedule script execution [Timer] OnCalendar=*:0/1 [Install] WantedBy=timers.target 最初にのみ機能し、それ以降はn / a状態のままです。 # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES n/a n/a Tue 2019-10-15 14:50:01 EDT 3ms ago myscript.timer myscript.service ~

Admin

systemd を使用して再起動すると、Celery Worker は早期に終了します。
systemd
systemd-unit

systemd を使用して再起動すると、Celery Worker は早期に終了します。

私はsystemdでセロリを使います。私は再起動すると、ほとんどの場合、作業中にワーカーを失うことがわかりました。 celery multiドキュメントによれば、celery multi stopwaitはタスクが完了するのを待たなければならないようです。 再起動すると、次のエラーが発生します。 Process "ForkPoolWorker-10" pid:16902 exited with "signal 15 (SIGTERM)" celery.conf [Unit] Description=Celery background worker After=network.target [Service] Type=forking User=celery Group=celery WorkingDirectory=/src ExecStart=celery multi start worker -A main.celery -Q celery --logfile=/data/celery.log --loglevel=info --concurrency=10 --pidfile=/var/run/celery/%%n.pid ExecStop=celery multi stopwait worker --pidfile=/var/run/celery/%%n.pid [Install] WantedBy=multi-user.target また、SIGTERMを送信する前に作業が完了するまで少なくとも90秒待つ必要があるというsystemd文書も読みました。再起動コマンドを実行した後、10秒以内にこのエラーが発生します。 私は何が間違っていましたか? セロリバージョンの使用:5.2.2(dawn-chorus)

Admin