タグ付けされた質問 「systemd」

systemdは、LinuxのSystemVおよびUpstart initデーモンの代替アプローチです。これは、サービスの依存関係を表現するためのより良いフレームワークを提供し、システム起動時により多くの作業を並行して実行できるようにし、シェルのオーバーヘッドを減らすことを目的としています。

2
systemdがDebian 8.0 Jessieの起動時にネットワークを待機する時間が長すぎる
私のシステムは、RANのDebian Wheezyに7しばらくますが、Debianの8ジェシーにアップグレードした後、比較的高速に起動し、したがってからSysVinitのsystemd、それは仕方遅く、道になりました。 起動を遅くしているのはネットワークです。ネットワークインターフェースの育成待ちが1分を超えています。/etc/network/interfaces起動プロセスに何が影響しているのかわかりません。そのため、ここで全体を説明します。 / etc / network / interfaces: allow-auto lo iface lo inet loopback auto wlan0 iface wlan0 inet static address 192.168.150.1 netmask 255.255.255.0 auto eth1 iface eth1 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down auto eth2 iface eth2 inet manual up ifconfig $IFACE 0.0.0.0 …

2
systemdサービスファイルでのDISPLAYの設定
xclockをサービスとして開始することで、systemdサービスを学習しようとしています。サービスファイルは以下です [Unit] Description=clock [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xclock [Install] WantedBy=graphical.target ここで何が問題になっていますか?「ディスプレイに接続できません」というエラーが表示されます。

2
Debianパッケージを通じてsystemdファイルを条件付きで有効にする
サービスをインストールするdebパッケージを作成しました。 私たちの組み込みデバイスでは、このパッケージでサービスを自動的に有効にしたいと思います。開発者のワークステーションでは、systemctl start foo手動で開発者に作業を依頼します(サービスが重いため、デスクトップ環境で常に実行していると、リソースを消費するだけです)。 apt-getステップ中にユーザーに決定を促すにはどうすればよいですか?それが最善の解決策ですか? 注、私が使用してパッケージを作成したdh_makeとdebhelperし、それを有効に: %: dh $@ --with=systemd override_dh_systemd_enable: dh_systemd_enable --name=foo foo.service
8 systemd  dpkg 

2
systemd:ソケットベースのアクティベーションをまだサポートしていないpostgresqlやmysqlなどのサービスのオンデマンドの開始
私のラップトップでは、テストにのみMySQLとPostgreSQLを使用しています。プログラミングを開始するまでは必要ありません。起動してから数時間かかる場合があります。しかし、サービスを手動で開始し、sudoパスワードを入力するのは(マイナー)な煩わしさです。 systemdがサービスの開始をサポートしているのは、そのサービスのポートにアクセスしたときだけだと私は読んだ。しかし、Googleをすばやく検索すると、PGとMySQLではソケットベースのアクティベーションがまだサポートされていないことがわかります。 シェルスクリプトを使用してこれをハッキングしたり、メンテナーがサービスを修正するのを待ったりできることはわかっていますが、今は(教育目的で)より良い方法を探しています。 質問: systemdの機能を利用したり、Linuxの「ベストプラクティス」として推奨されている方法で、このようなサービスをオンデマンドで起動するにはどうすればよいですか? いくつかの考え: 条件(特定のプロセスの実行など)に基づいて自動開始および自動停止サービスを処理するインストール可能なサービスはありますか? ソケットによってアクティブ化され、ターゲットサービスを起動するプロキシサービスはありますか? systemd 229、Kubuntu 16.04、MySQL 5.7、PostgreSQL 9.5 更新:答え: Siosmによって提案されたsystemd-socket-proxydの使用方法: /etc/mysql/mysql.conf.d/mysqld.cnf port = 13306 /etc/systemd/system/proxy-to-mysql.socket [Socket] ListenStream=0.0.0.0:3306 [Install] WantedBy=sockets.target /etc/systemd/system/proxy-to-mysql.service [Unit] Requires=mysql.service After=mysql.service [Service] # note: this path may vary ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:13306 PrivateTmp=no PrivateNetwork=no 必要に応じてリロード/停止/開始: sudo systemctl daemon-reload sudo systemctl enable proxy-to-mysql.socket sudo systemctl start …

3
準備ができているsystemdサービスフラグを使用して、他のサービスが開始する前に準備ができるのを待つことができますか?
サービスの初期化が完了し、完全に実行されて他のサービスの準備ができた後にのみ開始する必要がある一連のサービス(たとえばC0、C1… C9)がありSます。systemdでそれをどのように調整しますか? でにsystemdでのパスの活性化とターゲットとの発注サービスでは、サービスが想定されたSフラグファイルのいくつかの並べ替えを書き出すための機構を有しています。対照的に、ここでは、サービスSが実行するプログラムを完全に制御でき、必要に応じてsystemdメカニズムをプログラムに追加できると仮定します。
8 systemd 

2
systemdスクリプトでtrueのときに実行
基本的にこれを実行しているbashスクリプトを取得しました。 #!/bin/bash [...] while true; do str="broadcast "`randArrayElement "messages[@]"` server_send_message $str sleep $interval done これをsystemdサービスとして実行したいのですが、サービススクリプトは次のようになります。 [Unit] Description=Announcer After=network.target [Service] ExecStart=/usr/local/bin/somescript &; disown ExecStop=/usr/bin/kill -9 `cat /tmp/somescript.pid` Type=forking PIDFile=/tmp/somescript.pid [Install] WantedBy=default.target 残念ながら、service somescript startそれを介してこのサービスを実行すると機能しますが、while trueループが原因で、端末がスクリプトの開始でスタックします。 ● somescript.service - somescript service Loaded: loaded (/etc/systemd/system/somescript.service; disabled; vendor preset: enabled) Active: activating (start) since …

1
systemdユーザーがユーザーグループの権限を取得できません
dockerグループに非rootユーザーを追加し、この非rootユーザーがdockerデーモンに接続すると、他のサービスが実行されました。しかし、サービスは機能しません。私はこれのテスト例を行います: root@# systemctl start docker.service root@# gpasswd -a tiger docker tigerでsystemdサービスを作成します。 [Service] ExecStart=/home/tiger/connectdocker Restart=always StartLimitInterval=0 Delegate=true KillMode=process [Install] WantedBy=default.target この/home/tiger/connectdockerような: docker run -itd busybox 2> connectdocker.log このサービスを開始します。 tiger@# systemctl --user enable connectdocker.service tiger@# systemctl --user start connectdocker.service そして結果: Thu Jul 21 00:59:15 CST 2016 Cannot connect to the Docker daemon. …

3
systemdが「ループが速すぎる」と出力するのはなぜですか?
Debian 8.3(jessie)でサーバー(VPS)を実行していて、systemdがさまざまなプロセスを管理しています。システムの負荷は1未満ですが、ほぼすべてのメモリとスワップ領域の一部を使用しています。サービスを停止して開始しようとすると systemctl stop process@1 ログファイルは言う Mar 1 08:03:50 abcde systemd[1]: Looping too fast. Throttling execution a little. このメッセージは毎秒表示され、それ以上は起こりません。^C端末に送信すると、ようやくプロセスが停止します。デーモンを再起動しようとすると、同じことが起こります。Systemdのバージョン:215-17 + deb8u3 このメッセージが表示されるのはなぜですか?このメッセージなしでデーモンをシャットダウンするにはどうすればよいですか?
8 systemd  daemon 

1
起動シーケンスの最後に飛ぶメッセージを一時停止(またはキャプチャ)するにはどうすればよいですか?
「起動シーケンス」1の終わりに向かって、ログインプロンプト2が表示される直前に、長い一連の診断メッセージが非常に速く飛んでいくのがわかります。 すべてではないにしても、この短命の出力を構成する行のほとんどは、以下に示す文字列のいずれかで始まります。 [ OK ] [FAILED] ... OKは緑色で、FAILEDは赤色です3。 これらのメッセージが短すぎて私には読めません。 私の質問は: これらのメッセージを読みやすくする方法はありますか? 頭に浮かぶ可能性のある解決策は次のとおりです(優先順): これらのメッセージをそのまま 4番で永続的なログファイルにティーイン(または単にリダイレクト)します。 ページングタイプのメカニズムを有効にする(Press any key to continue...); これらのメッセージが出力された後、(構成可能な長さの)ポーズを挿入する。 いくつかのキー(またはキーの組み合わせ)を有効にして、画面への出力を一時停止します5。 編集:私がこれまでに得たコメントに基づいて、私はできる限り強調しましたが、上記の(1)の逐語的な言葉は理解されていないか、真剣に受け取られていないと結論付けなければなりません。フラッシュできたら… EDIT2:meuhがコメントで与えた提案は私に有望であるように見えますが、まだ機能させることができていません。これが私がしたことです: まず、の最後に次のコードを追加しました/etc/rsyslog.conf。 # Save boot messages also to boot.log local7.* /var/log/boot.log ...そして再起動しました。通常の診断メッセージが飛び交うのを見ましたが、/var/log/boot.logファイルは作成されませんでした。 次に、(確かにありそうもないことですが)/var/log/boot.logがすでに存在していなければならないというイベントでrsyslog書き込みができるようにして、(rootとして)実行しました。 touch /var/log/boot.log chgrp adm /var/log/boot.log chmod 640 /var/log/boot.log ... chgrpとchmodコマンドは、の所有権と権限を/var/log/boot.log、にある他のすべてのログファイルの所有権と権限と一致させることを目的としています/var/log。その後、再起動し、メッセージなどを確認しました/var/log/boot.log。この再起動後、ファイルは空のままでした。 (の権限をに変更したときに、同じ結果が得られませんでし/var/log/boot.logた666。) 私はgrep「の出力編journalctl --bootと下のファイル/var/log、私は私で何かのゆがんを指していると考えることができ何のためにrsyslog、しかし、何も見つかりませんでした。(私はにあまり詳しくないrsyslogので、私の検索はかなり無能だったと思います。) これまでに行ったことは、目的のログを有効にするのに十分ではないことは明らかです。私は今私が行方不明のものを探しています。ただし、関連するドキュメントを見つけることはできませんでした。たとえば、何であるかを説明することはありませrsyslog.conf(5)ん。rsyslogd(8)local7rsyslog.conf(5) EDIT3 …

2
systemdサービスのWorkingDirectoryとしてのシンボリックリンク
私はWorkingDirectory=/srv/ctr/currentシンボリックリンクであるサービスを持っています。 サービスは再起動時にシンボリックリンクの変更を取得しないようです。エラーログ/srv/ctr/releases/69は場所としてレポートしますが、を/srv/ctr/current指し/srv/ctr/releases/72ます。systemdに新しいディレクトリの変更をピックアップさせる方法はありますか?

1
root権限なしでgnomeはどのように再起動しますか?
Linuxカーネル開発の本を読んでいます。第5章の「システムコールの実装」の77ページに記載されています。 たとえば、capable(CAP_SYS_NICE)は、呼び出し元が他のプロセスのnice値を変更できるかどうかをチェックします。デフォルトでは、スーパーユーザーはすべての機能を所有し、非ルートは何も所有しません。たとえば、次に示すのはreboot()システムコールです。最初のステップが、呼び出しプロセスにCAP_SYS_REBOOTがあることを確認する方法に注意してください。その1つの条件ステートメントが削除された場合、任意のプロセスがシステムを再起動する可能性があります。 ただし、Debian Sidでは、gnomeを使用するか、sudoまたはsuなしで/ sbin / rebootを実行して、マシンを再起動できます。これはどのようにして可能ですか? たぶんsystemctlで? ls -l /sbin/reboot lrwxrwxrwx 1 root root 14 Jun 28 04:23 /sbin/reboot -> /bin/systemctl 編集:ユーザーグループ [damian@xvz:~]$ groups damian sudo wireshark bumblebee 編集2:systemctl権限 [damian@xvz:~]$ ls -l /bin/systemctl -rwxr-xr-x 1 root root 626640 Jun 28 04:23 /bin/systemctl

1
systemdジャーナルが再起動後も保持されないのはなぜですか?
Linodeインスタンス上の新しいFedora 21イメージで非常に奇妙な問題が発生しています。Linode以外では再現できません。問題は、私のsystemdジャーナルが再起動後も持続しないことです。ドキュメントによると: デフォルトでは、ジャーナルは/ run / log / journal /にログデータを保存します。/ run /は揮発性であるため、再起動時にログデータは失われます。データを永続化するには、systemd-journaldがデータを保存する/ var / log / journal /を作成するだけで十分です。 / var / log / journalが存在することを確認し、/ etc / systemd / Storage=persistentjournald.confにも設定しました。ログディレクトリには一連のデータが含まれています。 $ du -sh /var/log/journal/ 89M /var/log/journal/ ただし、ジャーナルには、最後のシステム再起動以降のログエントリのみが含まれます。 $ journalctl --list-boots 0 9f6a5a789dd64ec0b067140905e6da86 Thu 2015-03-19 15:08:48 GMT—Thu 2015-03-19 22:14:37 GMT journalctl --flush再起動する前でも、ログは失われます。これはLinodeのFedora 21イメージの問題だと思います。それらでサポートチケットを開きました。その間、私はこの問題の原因を探し続けています。 …

1
CentOS 7のログファイル[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 CentOS 7では、誰がシステムに入ろうとしたか、誰がアクセスしたか、どのプロセスに連絡したか、何を実行したかなどを示すすべてのシステムログをどのように見つけて表示できますか?すべてのアクティビティをいずれかにリンクできるようにしたいユーザーIDまたはリモートIPアドレス。 私のvar/log/ディレクトリには、/var/log/messagesおよびを含む多数のリソースが含まれて/var/log/secureいますが、ほとんどのファイルはタイプでBinary (application/octet-stream)あり、不明な表示プログラムを関連付けない限り、OSはそれらを開く方法を知りません。また、var/log/firewalld有用な情報が含まれていないようです。 アプリ、データベース、NginX / Apacheによって生成されたすべてのログを見つけることができます。

2
socat initスクリプトをsystemdに移行
私は、debian 7.2でsysVinitを使用して、次のinitスクリプトでsocatを使用しています。それは完全に機能します: #!/bin/bash DESC=socat DAEMON=/usr/bin/socat LIB=/usr/lib/socat SOCAT_ARGS="-d -d -lf /var/log/socat.log" [ ! -f /etc/default/socat.conf ] || . /etc/default/socat.conf . /lib/lsb/init-functions PATH=/bin:/usr/bin:/sbin:/usr/sbin [ -x $DAEMON ] || exit 0 # # Try to increase the # of filedescriptors we can open. # maxfds () { [ -n "$SOCAT_MAXFD" ] || return …

2
Archはブート時にbtrfsアレイをマウントしません
データパーティションとして、マルチディスクのbtrfsファイルシステムがあります。私のルートディスクはext4です Fstab: UUID=290624c6-6b95-41fd-94a1-923ebca64b83 / ext4 rw,relatime,data=ordered 0 1 /dev/sdc /mnt/btrfs btrfs rw,relatime,compress-force=zlib,autodefrag 0 0 マシンを起動すると、メッセージが表示されて1分30秒待機します A start job is running for dev-sdc.device それとその後 Dependency failed for /mnt/btrfs ログインするとできること mount /mnt/btrfs systemctl default そしてそれはうまくいきます。システムは正常に起動します。 最初にmkinitcpioフックで何かをする必要があるかもしれませんが、このページには次のように書かれています: Archのデフォルトのmkinitcpioパッケージには、標準のbtrfsフックが含まれています。これは、マルチデバイス(RAID)サポートを取得するのに十分です。それ以外に、カーネルはフックなしで単一デバイスのbtrfsルートを起動することができます だから、すべてが箱から出して動作するはずです。 なぜ動作しないのですか?それを修正するにはどうすればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.