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

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


2
sudo -iがターゲットユーザーのXDG_RUNTIME_DIRを設定しないのはなぜですか?
XDG_RUNTIME_DIRsystemctl --user働くために必要です。 systemdユーザーセッションを実行するために、ubuntuサーバー16.04をセットアップしました。さて、それらを管理しようとすると、sudo -u $user -iまたはを介してユーザーを変更するsu - $userと、環境がXDG_RUNTIME_DIR設定されず、動作しなくなることがわかりsystemctl --userました。ただし、sshそのユーザーに直接アクセスすると、正しく設定されます。 ドキュメントを正しく理解していればlibpam-systemd、ユーザーセッションの作成時に設定する必要があります。XDG_RUNTIME_DIRpoint(/run/users/$uid)を指定するディレクトリが存在するため、ユーザースライスは正しく開始されます。たとえば、.bash_profileでハードコードするのはためらいます。なぜなら、PAMがそれを処理する必要があるとき、それは(動作しているとしても)ハッキーだと思われるからです。 もちろん、in に追加XDG_RUNTIME_DIRすることもできますが、それはsudoingユーザーの環境を維持するだけで、それは私が望んでいるものではありません。私がしたいターゲットユーザーの環境を。env_keepsudoers しかし、私が本当に不思議に思っているのは、どうしてセッションがで正しく設定されsshているのsuか、ではなく、またはであるのsudo -iか?
14 ssh  systemd  sudo  pam 

2
systemdサービスとしてssh-agentを起動して使用するには?
systemdサービスとしてssh-agentを起動する方法は?ネットにはいくつかの提案がありますが、完全ではありません。 ssh-agentサービスが正常に開始された場合、自動的に暗号化されていないキーを追加する方法は?おそらく、リストからキーを追加~/.ssh/.session-keysするのが良いでしょう。 SSH_AUTH_SOCKその後、ログインセッションで設定する方法は?最も正しい方法は、ssh-agentサービスからsystemd-logindサービスにプッシュすることです(それが可能かどうかわからない)。単純な単純な方法は、それをに追加するだけ/etc/profileです。

3
特定の時間にsystemd.serviceを開始/停止する
特定の時間にsystemd.serviceを開始および停止したい。おそらく私は.timerユニットを使用してジョブを開始しますが、特定の期間後、または特定の時間にジョブを停止する方法が組み込まれていstopますか? ありがとう

5
systemd:遅延シャットダウンの予定時刻を確認する方法は?
私はshutdown -h TIME/+DELAY時々使うのが好きです。ただし、systemdへの切り替え(Ubuntu上)以来、状況はかなり変わったようです。 以前のシャットダウンコマンドで新しいコマンドの実行が妨げられなくなったという事実は別として、現在のシャットダウンプロセスの予定されたシャットダウン時間を確認する方法がわかりません。 ps aux | grep shutdown予定されていたシャットダウン時間を確認するために実行していました。 systemdでは、次のように表示されます。 root 5863 0.0 0.0 13300 1988 ? Ss 09:04 0:00 /lib/systemd/systemd-shutdownd そのようなプロセスのスケジュールされたシャットダウン時間を確認するにはどうすればよいですか? 試しましたshutdown -kが、壁のメッセージを書くだけではなく、シャットダウンの予定時間を今+1分に変更しているようです。
14 systemd  shutdown 

2
ネットワークがオンラインになるまでユーザーサービスを待機させるにはどうすればよいですか?
私はユーザーに有効にして欲しい、そして機能するネットワーク接続を必要とするいくつかの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 …

4
Systemdは起動直後にサービスを強制終了します
OSSEC HIDSのsystemdユニットファイルを書いています。問題は、systemdがサービスを開始するとすぐに停止することです。 そのExecStartディレクティブを使用すると、すべて正常に動作します。 ExecStart=/var/ossec/bin/ossec-control start しかし、私がOSSECログを少し改善すると、開始後にSIG 15を受け取ることになります。 ExecStart=/bin/sh -c '${DIRECTORY}/bin/ossec-control start' 別の小さな変更を行うと、サービスは20秒後にSIG 15を受け取ります。 ExecStart=/bin/sh -c '${DIRECTORY}/bin/ossec-control start && sleep 20' そのため、systemdはサービスの開始後に/ bin / shプロセスを強制終了し、bin / shはOSSECを強制終了します。 この問題を解決するにはどうすればよいですか?
14 centos  rhel  systemd 

1
systemdサービスユニットファイルを作成して、特定のインターフェイスが起動するまで待機してから開始する方法
Debianでhostapdのユニットファイルを作成しようとしています。 hostapdデーモンは、実行される前、またはSEGVの実行前に、関連付けられたWifiインターフェースのインターフェースを起動する必要があるようです。 network-online.targetを試しましたが、まだSEGVを取得しています。これは、network-online.targetが任意のインターフェイスを起動することだけを必要とし、Wifiインターフェイスがhostapdが機能する準備ができる前に他のインターフェイスが起動するためだと思います。 サービスを開始する前に特定のインターフェースが起動するのを待つ最良の方法は何ですか?
14 systemd 

2
journaldでユニットごとのログストレージポリシーを構成する方法
珍しいが重要な情報をログに記録する特定のサービスがあります。数か月前にセットアップしましたが、今日journalctl -n 50 --unit=my-serviceはエントリがないことを確認するためだけに実行しました。 ほとんどのユニットでこの動作に完全に満足しています。すぐに(または多くても数日前)起こったことが必要であり、数か月前のレコードは気にしません。 しかし、journald単一の特定のユニットのレコードに対して、独立したストレージおよび保持ポリシーを持つように指示する方法はありますか?私はそれらの特定のログを、たとえば5年間、それがかかるサイズに関係なく保持したいと考えています。他のユニットのログはこれによる影響を受けず、既存の動作を保持する必要があります。 私は理解を失っていてjournald.conf(5)、ユニット単位の構成が可能な場合はいつでも理解できません。もしそうなら-簡単で具体的な例に感謝します-どのファイルを編集/作成し、何を書くべきか。または、確かにそれが確実に実行できないことを知っている場合-それも同様に良い答えでしょう。 注:私の特定のケースにはArch Linuxホストが関係していますが、これはそれほど問題ではないと思います。

1
Systemctlは失敗したリストからユニットを削除します
systemctl --failedマシンを再起動せずにリストからユニットを削除するにはどうすればよいですか? 背景:私は、とりわけ、リストに次のエントリを持っています: ● openvpn-server@intranert.service loaded failed failed OpenVPN service for intranert これintranetは、実際の生産的なインスタンスであるのスペルを、ユニットテンプレートのアクティベーションで少し前に間違えたために発生しました。ただし、サーバーの障害が発生したユニットを確認すると、スペルチェックの間違いを認識し、タイプミスを忘れない限り、実際のサービスが実際に失敗したように見えるので、一見すると常に混乱します。

2
デスクトップコンテキストでのsystemdスケジューリング関連オプションの使用と理解
systemdサービスファイルでは、次のスケジュール関連オプションを設定できます(systemd.execmanページから、間違っている場合は修正してください)。 Nice 実行されたプロセスのデフォルトのniceレベル(スケジューリング優先度)を設定します。-20(最高の優先度)から19(最低の優先度)の間の整数を取ります。詳細については、setpriority(2)を参照してください。 おなじみのいいレベルです。最近のLinuxカーネルの「オートグループ」機能により、その効果はいくぶん「覆された」ようです。したがって、以下のオプションは、デスクトップエクスペリエンスでプロセスが適切に動作し続けるように設定したいものです。 CPUSchedulingPolicy 実行されたプロセスのCPUスケジューリングポリシーを設定します。その他、バッチ、アイドル、FIFO、またはRRのいずれかを取ります。詳細については、sched_setscheduler(2)を参照してください。 CPUSchedulingPriority 実行されたプロセスのCPUスケジューリング優先順位を設定します。使用可能な優先度の範囲は、選択したCPUスケジューリングポリシーによって異なります(上記を参照)。リアルタイムスケジューリングポリシーでは、1(最低の優先度)から99(最高の優先度)までの整数を使用できます。詳細については、sched_setscheduler(2)を参照してください。 CPUSchedulingResetOnFork ブール引数を取ります。trueの場合、実行されたプロセスがフォークすると、CPUスケジューリングの優先順位とポリシーの昇格がリセットされるため、子プロセスにリークすることはできません。詳細については、sched_setscheduler(2)を参照してください。デフォルトはfalseです。 最後のオプションを理解しました。最初の2つの説明から、スケジューリングポリシーを選択し、そのポリシーを優先することができると説明しました。どの種類のタスクのために何を選択すべきかは、私には完全に明確ではありません。たとえば、バックアップタスクに「アイドル」を選択しても安全ですか(重複排除のために比較的CPUに負荷がかかります)、それとも別の方が適していますか? 一般に、各ポリシーの概要と、その優先順位と特定の目的への適合性を理解することは、私が探しているものです。niceレベルとの相互作用も興味深いものです。 CPUスケジューリングの次に、IOスケジューリングがあります。これはionice(間違っている場合は修正してください)に相当すると思います。 IOSchedulingClass 実行されたプロセスのI / Oスケジューリングクラスを設定します。0〜3の整数、またはnone、realtime、best-effort、idleのいずれかの文字列を取ります。詳細については、ioprio_set(2)を参照してください。 IOSchedulingPriority 実行されたプロセスのI / Oスケジューリング優先順位を設定します。0(最高の優先順位)から7(最低の優先順位)までの整数を取ります。使用可能な優先度は、選択したI / Oスケジューリングクラスによって異なります(上記を参照)。詳細については、ioprio_set(2)を参照してください。 ここでは、CPUスケジューリングと同じ構造が表示されます。同じ種類の情報も探しています。 すべての「スケジューリング」オプションについて、参照されたマニュアルページは私にとっては十分に明確ではありません。ほとんどは、技術的にやや傾けられたデスクトップユーザーの視点に物事を翻訳することにおいてです。

2
systemd-anacronの動作を模倣するタイマーユニット
頻繁にオフになるマシン用のタイマーユニットを作成する必要があります(たとえば、従来のデスクトップセットアップ)。このタイマーユニットは定期的にアクティブにする必要がありますが、それほど頻繁ではありません(毎週、毎月など)。 私はいくつかのアプローチを見つけましたが、それらはすべて実際には適合しません: manページによるのみOnBootSecとOnStartupSec時間の設定された時点が過去にある場合のディレクティブが有効になります。これらの組み合わせOnActiveSecを使用して定期的なイベントを定義するいくつかの例も見つけました。問題は、マシンが起動されるたびに、タイマーが設定されたユニットをアクティブにすることです。週/月に一度だけ実行するタイマーを取得した場合、それはあまりにも頻繁です。例:ログを1日に3回ローテーションさせたくない... OnCalendarディレクティブを使用したソリューション。設定された時点でマシンの電源がオフになっている場合(時間指定で時間を省略した場合のデフォルトは00:00:00であるため、ほとんど真夜中です)、タイマーは次回の起動後にアクティブになりません。少なくとも私はそれを手に入れました。そうですか? 質問は次のとおり です。設定された時間が過去の場合、次回の起動直後にカレンダーイベントのタイマーがアクティブになりますか? そうでない場合:そのような動作を得るための回避策はありますか?
13 cron  systemd 


1
ログオフによるtmuxセッションの強制終了を防ぐ
Xユーザーセッションからログオフ(ログアウト)するとtmux、実行したセッションsudo tmuxや同様のコマンドを含めて、開始したセッションが強制終了されることに気づきました。これは以前は発生していなかったと確信していますが、最近の変更がこの動作に影響を及ぼしています。 Xセッションを終了した後でも、これらのtmux(またはscreen)セッションを維持するにはどうすればよいですか?

3
サービスコマンドの詳細度を変更するにはどうすればよいですか?
Kali 2 Linuxを実行しています。systemctlまたはserviceコマンドを使用して、Apacheなどのサービスを開始します。以前のバージョンのKaliでは、サービスを開始すると、コマンドは実際に「OK」メッセージを出力しました。しかし、このバージョンでは、何も言わずにコマンドラインに戻ります。 冗長性を変更したり、以前のバージョンのように動作させる方法はありますか?

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