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

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

2
systemd-tmpfilesを実行するsystemd .serviceファイルの書き方
systemd-tmpfiles --createsystemdディストリビューションを使用してブートプロセス中に実行する必要があります。したがって、この仕事をするsystemd .serviceファイルを作成する必要があります。 この質問では、必要なものとその理由に関するすべての詳細を読むことができます:systemd-tmpfilesはどのように機能しますか? 私はそれについていくつかのドキュメントを読んでおり、次のテストを書いています: [Unit] Description=Execute tmpfiles to disable usb-wakeup # see details in the link above Requires=multi-user.target # see details in the link above After=multi-user.target # see details in the link above [Service] Type=oneshot ExecStart=/usr/bin/systemd-tmpfiles --create [Install] WantedBy=multi-user.target しかしsystemd-tmpfiles、単純なプログラムではなく、systemd自体の一部であるため、わかりません。システムを壊したくありません。 正しい.serviceファイルに関するヒントはありますか?

3
別のサービスが開始またはリロードした場合、Systemd Unitサービスが再起動します
可能な場合は、システムによってインストールおよびアップグレードされる編集なしで、開始またはリロード(構成のリロードのみ)するときSystemdに再起動A.service(After)する方法があるかどうかを知りたいです。B.serviceB.service A.serviceがB.serviceインストール、無効、または停止されていない場合でも起動する必要があります。 A.service: [Unit] After = B.service network-online.target Wants = B.service [Service] Type=oneshot ExecStart = /script.sh start ExecStop = /script.sh stop RemainAfterExit=yes [Install] WantedBy = network-online.target B.service: [Unit] After=syslog.target network.target [Service] Type=forking ExecStart=/cmd start ExecStop=/cmd stop ExecReload=/cmd reload PIDFile=/var/run/cmd.pid [Install] WantedBy=multi-user.target
16 systemd 

2
「停止ジョブの実行中」のシャットダウンタイムアウトの短縮
Pi(Raspbian)にnode.jsとpm2をインストールしました。PM2はpm2 startup、経由で起動するように構成され、それが作成するinitスクリプトを構成しました。再起動すると、シャットダウンが数分間ハングすることがあります: A stop job is running for LSB: PM2 init script (... / 5min) すべてのたまには1私が仮定していることPM2は完全な5分間適切とハングシャットダウンしませんです。 このシステムでは、PM2が管理しているアプリを正確に把握しており、適切にシャットダウンするかどうかはあまり気にしません。 私の質問は次のとおりです。タイムアウトを5分から15秒程度にするにはどうすればよいですか。これはどこで設定されていますか? フォーラムでそれが/etc/systemd/system.confのDefaultTimeoutStopSecキーだと読んだので、それを「15s」に設定しようとしましたが、効果はありませんでした。/etc/systemd/user.confでも同じことを試しましたが、変更はありませんでした。タイムアウトはまだ5分に設定されています。 1実際に私はこれをトリガーするものを具体的に知っていますが、詳細は重要ではなく、効果は避けられません。
16 systemd  reboot  lsb 

1
systemdのコマンドラインオプション「--switched-root」および「--deserialize」とは何ですか?
やってps自分のLinuxボックスショーにすると、そのsystemdコマンドラインオプションで実行されます--switched-rootと--deserialize。マニュアルページには何も/usr/share/doc/systemd記載されておらず、言及されていないため、Googleはあまり助けになりませんでした。それで、彼らは何をしますか?私はそれ--switched-rootがpivot_rootと関係があると推測していますが、それは単なる推測です。
16 linux  systemd 

1
どうすればsshサーバーを本当にシャットダウンできますか?
systemctl disable sshでsshサーバーを無効にしてから再起動します。再起動後も、sshを介してリモートサーバーにログインできます。systemctl status sshを使用してサーバーのステータスを確認しましたが、アクティブではありません。 $ systemctl -a | grep ssh ssh.service loaded inactive dead OpenBSD Secure Shell server ssh@3-192.168.0.120:22-192.168.0.104:31079.service loaded active running OpenBSD Secure Shell server per-connection daemon (192.168.0.104:31079) system-ssh.slice loaded active active system-ssh.slice ssh.socket loaded active listening OpenBSD Secure Shell server socket
15 systemd  sshd 

1
「/etc/init.d」と「/ lib / systemd / system」内のサービスについて混乱しています
私はLinuxの世界ではまったく新しいので、間違ったことを言ってすみません。 Debian 8.5マシンでMongo DBを実行しようとしています。パッケージ(percona.comから事前にビルドされた)をインストールしたとき、次のファイルに気付きました。 /etc/init.d/mongod (1) /lib/systemd/system/mongod.service (2) /etc/init.d/mongodについて 私はこれがupdate-rc.dブート/他の特定のシステム状態で(を介して登録されている限り)呼び出されることを理解しています(これについて技術的になりたくない、私は多くの情報を吸収していますが、これはそれほど重要ではないようです)。 これは私にはまったく問題ありません。スクリプトは多くの初期化を行い、最終的にmongoデーモンを起動します。起動、停止、再起動などの「トリガー」があるようで、私が理解している限り、これらをトリガーできsudo service mongod <action>ます。 /lib/systemd/system/mongod.serviceについて このファイルは同じことを行うように見えます(つまり、mongoを実行します)が、構成が少なく、ExecStartパラメーターの1行だけです。 [Unit] Description=MongoDB (High-performance, schema-free document-oriented database) After=time-sync.target network.target [Service] Type=forking User=mongod Group=mongod PermissionsStartOnly=true EnvironmentFile=/etc/default/mongod ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}" PIDFile=/var/run/mongod.pid [Install] WantedBy=multi-user.target 私の知る限り、これはでトリガーできますsudo systemctl start mongod。 これが起動時に呼び出されるかどうかはわかりません。 なぜこれらの「サービス」ファイルが2つ必要なのか、また1つ(おそらく/ lib / …

1
サービスを開始できませんでした
systemdサービスを作成しました: [Unit] Description=My service [Service] Type=forking ExecStart=/bin/sh $HOME/theFolder/run.sh Restart=on-failure [Install] WantedBy=multi-user.target Alias=mine.service / etc / systemd / systemフォルダーに配置し、mine.serviceという名前を付けました。 私がsudo service mine startそれを実行すると、私に与えられます: mine.service.Unit mine.serviceが見つかりませんでした ---更新----- 最初に実行するsudo systemctl daemon-reloadと、メッセージは表示されませんが、サービスは開始されません。
15 systemd  services 

4
Linuxでサービスを開始および停止する標準的な方法はありますか?
最近まで、サービスを開始/停止/再起動する簡単で効果的な方法がありました。 service nginx start|stop|restart これは何年も完璧に機能しました...一部のスマートパンツがそれらを改善することを決定し、今ではserviceスクリプトが何もしないDebian / Ubuntuシステムに直面しています(私はsystemctl start nginx.service(はるかに長いもの、オートコンプリート機能なし、...) 私の質問は特にDebianとUbuntuに関するものですが、CentOS / RedHatのディストリビューションもカバーすることも役立ちます。 だから、この運命の変化から私を救うことができる何かがありますか? 明確でない場合、Debian 7.x、8.x、最新のUbuntu LTSおよび非LTSで動作する一貫した方法を探しています。 PS。この特定の質問の範囲外ですが、ソリューションがサービスの有効化および無効化部分もカバーする場合、追加の称賛が与えられます。

2
ArchLinuxおよびCUPSサービスの印刷の問題
ArchLinuxで数日(gnome 3.14にアップグレードしたので疑わしい)もう印刷できません。gnomeコントロールセンターの印刷パネルを開くと、次のようなメッセージが表示されます(イタリア語から翻訳されています):「印刷用のシステムサービスは利用できないようです」 だから私は端末から試しました: $ sudo systemctl start cups Failed to start cups.service: Unit cups.service failed to load: No such file or directory. また、カップを再インストールしようとしましたが、運はありませんでした。また、さまざまな解決策を探してみましたが、どれもうまくいきませんでした。

4
systemd-tmpfilesはどのように機能しますか?
私は/sys/bus/usb/devices/4-3/power/wakeupすべてのブートで値を変更しようとしています(私のlsusbによれば4-3 、それはキーボードIDです)。 デフォルト値は次のとおりです。 # cat /sys/bus/usb/devices/4-3/power/wakeup enabled 古典的な「オンライン」編集は期待どおりに機能します。 # echo disabled > /sys/bus/usb/devices/4-3/power/wakeup # cat /sys/bus/usb/devices/4-3/power/wakeup disabled systemdディストリビューションを使用しているため、systemd-wayを使用して「一時ファイル」を編集したい 次のファイルを作成しました。 # cat /etc/tmpfiles.d/disable-usb-wakeup.conf w /sys/bus/usb/devices/4-3/power/wakeup - - - - disabled しかし、起動するたびに、このファイルにデフォルト値が残っています(つまり、有効になっています) 私は何か間違っていますか? 編集: ここで別のテスト: # cat /etc/tmpfiles.d/scheduler.conf w /sys/block/sda/queue/scheduler - - - - deadline これは問題なく動作します!起動後、私は得る: # cat /sys/block/sda/queue/scheduler noop [deadline] cfq …

1
変数を使用してWorkingDirectoryを設定する
環境変数を使用してService WorkingDirectoryを設定するにはどうすればよいですか?次にサービス構成の例を示します。 [Service] Environment=MYWORKINGDIR=/tmp WorkingDirectory=${MYWORKINGDIR} これにより、の行に沿ってエラーが生成されますnot an absolute path。開始にスラッシュを追加すると、そのエラーが「修正」されますが、パスはまだ見つかりません。 [Service] Environment=MYWORKINGDIR=/tmp WorkingDirectory=/${MYWORKINGDIR} これも可能ですか?ドキュメンテーションは、どのディレクティブがenv変数を使用できる/使用できないかについて明確ではありません。 http://www.freedesktop.org/software/systemd/man/systemd.exec.html
15 systemd 

1
/ usr / bin / envがsystemdログで実行可能としてマークされないようにする方法
この記事に記載されている情報に基づいて、tomcatアプリケーションを実行するsystemdサービスを作成しました。この記事の短いバージョンでは、適切な環境とコマンドラインを使用して、シェルスクリプトラッパーを回避し、javaを直接実行することを推奨しています。 systemdサービス全体を以下に示します(アプリ名が置き換えられています)。 [Unit] Description=MyApp Tomcat Container [Service] EnvironmentFile=/opt/myapp/environment ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $JAVA_OPTS $CATALINA_OPTS \ -classpath ${CLASSPATH} \ -Dcatalina.base=${CATALINA_BASE} \ -Dcatalina.home=${CATALINA_HOME} \ -Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \ -Djava.io.tmpdir=${CATALINA_TMPDIR} \ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ org.apache.catalina.startup.Bootstrap start ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_OPTS \ -classpath $CLASSPATH \ -Dcatalina.base=$CATALINA_BASE \ -Dcatalina.home=$CATALINA_HOME \ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ -Djava.io.tmpdir=$CATALINA_TMPDIR \ -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ org.apache.catalina.startup.Bootstrap …

7
systemd-udevがCPUをペギングするのはなぜですか?
4コアのラップトップのコアの1つが固定されており、温度が非常に高いことに気付きました。私はこれを見つけましたtop: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 359 root 20 0 188684 147228 1552 R 99.4 5.0 111:19.91 systemd-udevd 20011 root 20 0 188320 147604 2076 S 11.0 5.0 0:00.33 systemd-udevd 11053 dotanco+ 20 0 3030036 918672 49608 S 9.6 31.2 280:40.65 firefox 3468 …

3
再開時に実行されるsystemdサービスの作成
私のDellラップトップはカーネル3.14でこのバグの影響を受けます。回避策として、簡単なスクリプトを書きました / usr / bin / brightness-fix: #!/bin/bash echo 0 > /sys/class/backlight/intel_backlight/brightnes (および実行可能に:chmod +x /usr/bin/brightness-fix) そしてそれを呼び出すsystemdサービスは起動時に実行されます: /etc/systemd/system/brightness-fix.service [Unit] Description=Fixes intel backlight control with Kernel 3.14 [Service] Type=forking ExecStart=/usr/bin/brightness-fix TimeoutSec=0 StandardOutput=syslog #RemainAfterExit=yes #SysVStartPriority=99 [Install] WantedBy=multi-user.target 有効化: systemctl enable /etc/systemd/system/brightness-fix.service それは魅力のように機能し、必要に応じてディスプレイの明るさを制御できます。問題は、スリープモードに移行した後にラップトップを再開するときに発生します(ラップトップのリップを閉じるときなど)。上記のfisrtスクリプトを手動で実行しない限り、明るさの制御は機能しません。/usr/bin/brightness-fix 再開時に実行される上記のような別のsystemdサービスを作成するにはどうすればよいですか? 編集: 以下のコメントによると、私brightness-fix.serviceはこのように変更しました: [Unit] Description=Fixes intel backlight control with Kernel 3.14 …
15 systemd  laptop 

2
Systemd:必要なものと欲しいもの
ターゲットファイルにRequiresとWantsの間に違いはありますか? [Unit] Description=Graphical Interface Documentation=man:systemd.special(7) Requires=multi-user.target Wants=display-manager.service ありがとう
15 systemd 

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