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

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

1
systemdがステップEXEC生成スクリプトで失敗しました:権限が拒否されました
いわば「Hello World」サービスを作ろうとしています。呼び出されautologger.serviceてに保存され/usr/lib/systemd/system/autologger.serviceます。 私は試みましsudo service autologger startたsystemctlが、標準を返しました: Job for autologger.service failed. See 'systemctl status autologger.service' and 'journalctl -xn' for details. を確認し/var/log/messagesたところ、次のエラーメッセージが表示されました。 Failed at step EXEC spawning /opt/autologger/placeholder.sh: Permission denied 私の質問は、サービスへのアクセス許可をどのように与えるのですか? サービスユニットファイルは次のとおりです。 [Unit] Description=Hello World DefaultDependencies=no Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/opt/autologger/placeholder.sh placeholder.shには単純に #!/bin/bash echo "Hello World"

1
systemdユニットのPATHを設定する
CentOS 7で非ログインシェルのPATHを設定するにはどうすればよいですか? 具体的には、にバイナリが必要なsystemdユニットがあります/usr/local/texlive/2016/bin/x86_64-linux。 私はそれを設定しようとし/etc/environmentましたPATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATHが、私のPATHはでした/usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin。 で作成/etc/profile.d/texlive.shしましたexport PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"が、ログインシェルでのみ機能しました。 すべてのユーザー(ログインシェルと非ログインシェル)のパスの設定を確認しましたが、上記の解決策はすでに試されています。 私は見てのdebian上のすべてのユーザーの非ログインシェルとログインシェルのためのシステムの$ PATHにパスを追加する方法が、一般に認められた解決策はありませんし、私は私が変更したいかわからない/etc/login.defs、それはアップデートで変更される可能性がありますので。
13 centos  systemd  path 

1
systemdサービスで環境変数を設定する方法
Ubuntuに正しくインストールされているROSを使用しています。 ROSを実行するには、まずsource /opt/ros/kinetic/setup.bashを実行する必要がありroscoreます。roscoreなしsource setup.bashで実行すると、コマンドroscoreが見つかりません。 ここで、システムの起動中にROSを実行したいと思います。 私はこのリンクを読みました:https : //askubuntu.com/questions/814/how-to-run-scripts-on-start-up カスタムサービスファイルを作成してに追加するだけでよいようです/etc/systemd/system/。しかし、それでもsource setup.bash実行する前に必要な環境変数を設定する必要があるため、何をすべきかわかりませんroscore。 サービスファイルで環境変数を設定することは可能ですか?私の必要に応じて、これらの環境変数roscoreを、システムの実行だけでなくシステム全体にも設定する必要があります。 私は別のアイデアを持っています。つまり、これらの環境変数をに設定/etc/profileし、コマンドのみのサービスファイルを記述しますroscore。それは機能しますか?

2
SystemDはNプロセスを生成しましたか?
私の組織では、多くのキューを使用するワーカープロセスがあります。現在、SupervisorDを使用してそれらを管理していますが、可能であればSystemDを使用して特定の利点を実現したいと考えています。私はカスタムユニットの作成にかなりの経験がありますが、このためにSystemDランドにすぐにアナログを持っていません。 でSupervisorDのドキュメントと呼ばれるパラメータがnumprocs1は、彼らがサービスを開始することがしたいプロセスの数を設定することを可能にする詳述されています。30個のプロセスを開始したい場合は、1行の変更です。 SystemDユニットには、これらのプロセスをいくつ開始するかを指定できる設定がありますか?

4
「予測可能なネットワークインターフェイス名」を有効にする方法
私のイーサネットデバイスの名前を調べることにしましたが、他のディストリビューションとは異なり、Debianはこの変更を有効にしていないようです(または、それを控えていますか?)。 現時点では、古い永続的なネットワークインターフェイスの命名規則を保持し、カーネルコマンドラインでnet.ifnames = 1を使用して新しいものをオプトインします。 問題は、grubカーネル行を編集する必要があることです。これは、ファイルを変更することで無効にできるものに対してはやり過ぎのようです。別の方法はありますか?
12 debian  systemd  udev 

5
cronで実行されていないコマンド(systemctl suspend)
このcronjobセットがあります: * * * * * /usr/bin/systemctl suspend そして、それは機能していません。しかし、私はそれをシェルで実行でき、動作します。何が機能しないのか理解できません。 EDIT エラー出力をリダイレクトし/tmp/errorてこれを提供します: Failed to issue method call: Access denied Failed to issue method call: Access denied 私の質問は次のとおりです:cronjobsは特別なユーザー(cronたとえば)として実行されcronますか? 追加の説明: これは、スクリプトにある問題を示すための最小限の例です(ここで提供されている単一のコマンドよりも理にかなっています) systemctlの一部ですsystemd。再起動、シャットダウン、サスペンドは、root以外のユーザーで動作していると思いますsystemd。とにかく、それは私のシステムで動作しています。 最後に、私はアーチのLinuxを使用して/bin、/usr/sbin、/sbinすべてのシンボリックリンクには、/usr/bin。
12 cron  systemd  suspend 

2
systemdへの最近のアップグレード後にコアダンプはありませんか?
作業中のプログラムを実行すると、次のメッセージが表示されて失敗します。 ... Aborted (core dumped) ただし、コアダンプは作成されません。コアダンプは以前に作成されたものであり、それに関連するものを変更したことは覚えていません。 走るulimit -aと戻ってきます $ ulimit -a core file size (blocks, -c) unlimited ... その他のポイント、 ユーザーが現在のディレクトリにファイルを作成できることを確認しました。 について読みました/proc/sys/fs/suid_dumpable。現在、私のマシンでは0に設定されています。1または2に変更しようとしましたが、違いはありませんでした。 また、ルートとしてプログラムを実行しようとしましたが、それでも違いはありませんでした。 残念ながら、最後に成功したコアダンプをいつ生成できたか覚えていません。

4
シャットダウン時にCDを取り出す
わかりました、それで私は簡単な問題があります:私はライブCDがあり、コンピューターがリブートまたは停止したときにCDを取り出したいです。 実行/usr/bin/eject -mすると、CDが正常にイジェクトされます。問題は、ご想像のとおり、ファイルを読み取れないためにOSがクラッシュすることです。したがって、/sbin/rebootアクセスできないため、再起動は発生しません。(reboot --help > /dev/null再起動の直前に実行しようとしましたが、まだ読み取れないファイルがまだあります...) 要約すると、イジェクトを最後に行う必要があるようです。だから、それはsystemd私が遊ぶ必要がある子犬です...しかし、私は文字通り私の人生の何時間もそれを突っ込んだり、無駄にしたりしており、私が何をしようとも、どんな状況でも決して実際にCDを排出することはありません。そして、私には理由がわかりません。さまざまな呼び出し方法を試しましたejectが、何も起こりません。 実行する最も簡単な方法を教えてもらえますejectか?(私はすぐにumount.target賢明になると思います...)
12 shutdown  systemd 

1
systemdでのサービスとしてのActkbd
しばらく前に、画面がロックされているときに音楽プレーヤーを停止する方法を尋ねました。答えは、魅力のように機能するactkbdを使用することでした。起動時に自動的に起動するために、actkbdをsystemdのサービスとして追加したかったのです。そのため、サービスが正しく開始され、htopにも表示されることがわかります。以下の出力: [root@hostname init.d]# systemctl start actkbd.service [root@hostname init.d]# systemctl status actkbd.service actkbd.service - Actkbd: Daemon for X-independent shortcuts Loaded: loaded (/etc/systemd/system/multi-user.target.wants/actkbd.service) Active: active (running) since Tue, 10 Apr 2012 17:50:36 +0200; 2s ago Process: 23526 ExecStart=/usr/local/sbin/actkbd -d /dev/input/event3 -D (code=exited, status=0/SUCCESS) Main PID: 23527 (actkbd) CGroup: name=systemd:/system/actkbd.service └ 23527 /usr/local/sbin/actkbd …
12 systemd 

1
systemctl-サービス終了コードとステータス情報の説明
経由でサービス状況を確認する場合 systemctl systemctl status docker 出力は次のようなものです ●docker.service-Dockerアプリケーションコンテナーエンジン ロード済み:ロード済み(/lib/systemd/system/docker.service; enabled; vendor preset:enabled) アクティブ:非アクティブ(デッド)(結果:exit-code)2018年3月19日13時52分21秒CST; 4分32秒前 ドキュメント:https://docs.docker.com プロセス:6001 ExecStart = / usr / bin / dockerd -H fd://(code = exited、status = 205 / LIMITS) メインPID:6001(code = exited、status = 205 / LIMITS) 問題は太字の部分、つまりメインプロセスの終了コードとステータス情報についてです。 すべてのコードとステータスのリストとその説明はありますか? ほとんどの場合、それは自明です(そして私はここでの質問への答えを知っています)が、最近この質問がよく出ます(グーグルを介して検索する人もいますが、見つけられない人、systemd.serviceを開く人もいます)マンページ、たとえばコード203を検索しても見つからない...)なので、ここに置いて、グーグル経由で人々が答えを見つけやすくすることも考えた。
12 systemd 

1
/ tmpフォルダーのサイズを手動で増やす方法
Fedora 26の/ tmpフォルダーに空き容量が残っていません 。いくつかの問題が発生します。 フォルダ/ tmpはすべての空きRAMを占有します。 $ df -h /tmp Filesystem Size Used Avail Use% Mounted on tmpfs 3.9G 3.9G 12k 100% /tmp $ だから、RAMを追加したりそこからファイルを削除したりせずに、このフォルダのサイズを手動で増やして空き容量を増やすには どうすればよいですか? 私の質問はこれとこれに似ていますが異なります: 私の質問では、最大サイズに達している間、フォルダのサイズを増やす必要があります 前もって感謝します。
12 systemd  disk  tmpfs 

2
Systemd:ネットワークが完全に接続された後にsystemdサービスを開始する方法?
バックグラウンド Raspberry Pi 2のRaspbainで実行する簡単なスクリプトを書いています。LEDをオンにして、デスクトップコンピューターからSSHで接続する準備ができていることを示しています。 ここではスクリプトは重要ではありませんが、私は周波数制御を使用してスクリプトが無限ループを実行しているため、LEDを頻繁にオン/オフすることを述べています。したがって、これは単純なサービスの例です。ただし、少なくともこの質問で受け入れられている回答では、タイプをアイドルに設定することをお勧めします。だから私のサービスファイルは次のようになります [Unit] Description=Turn on LED after SSH is ready [Service] Type=idle ExecStart=/usr/bin/sshready.py [Install] Wants=network-online.target After=network-online.target 効果 サービスは期待どおりに実行されます。しかし、LEDがオンになった直後にデスクトップコンピューターでパテを起動すると、すぐには表示されないことに気付きました。だから私はチェックしました $ systemd-analyze plot > output.svg 結果は 質問 私のサービスはの後network-online.targetではなく開始されているようですが、ここで何が問題になっており、どのように修正できますか?
12 systemd  startup 

2
複数のインスタンスを同時に停止/開始する仮想systemdサービスを作成するにはどうすればよいですか?
を使用しているお客様のために、同じWebアプリの複数のインスタンスをホストする予定ですsystemd。を使用して、各顧客インスタンスを処理できるようにしたい。stopまたstart、顧客インスタンスのsystemdコレクション全体を、同時に停止および開始できる単一のサービスとして処理したい。 systemd私が使用する必要のあるビルディングブロックPartOfとテンプレートユニットファイルを提供しているようですが、親サービスを停止しましたが、子カスタマーサービスは停止していません。これをsystemdでどのように機能させることができますか?これが私が今まで持っているものです。 親ユニットファイルapp.service: [Unit] Description=App Web Service [Service] # Don't run as a deamon (because we've got nothing to do directly) Type=oneshot # Just print something, because ExecStart is required ExecStart=/bin/echo "App Service exists only to collectively start and stop App instances" # Keep running after Exit start finished, because …
12 ubuntu  systemd 

2
シャットダウンコマンドを送信した後、sshセッションが終了しない
Debianサーバーをオフにするか再起動するコマンドを送信すると、シェルはハングしたままになり、応答しなくなります(コマンドを入力できなくなります)。 Ubuntuで同じアクションを実行すると、セッションが正常に終了するため、拘束された端末がそこにぶら下がっていません。Debianでこれと同じ動作をさせるために、インストールする必要のあるパッケージや構成変更を行う必要はありますか?
12 debian  ssh  systemd  shutdown 

4
プロセスが特定のデバイスを使用できるようにアクセス許可を設定する方法はありますか?
たとえば、ここで読むことができるように、systemdの一部であるlogindは、一部のデバイスにユーザーセッションのアクセス許可を設定できます。この種の動作が実際にどのように機能するかを示すvidもあります。簡単に言うと、開始して、たとえばamarokで曲を再生すると、ログインプロンプトしかない別のユーザーまたはTTYに切り替えるまで、音が聞こえます。これは、アクティブなセッションが非アクティブになったためです。 特定のグループ(この場合は「オーディオ」)にユーザーを1つまたは複数追加するだけで問題が解決することはわかっていますが、別の解決策があるかどうか疑問に思っています。私が本当に欲しいのは、すべてのユーザーがセッションをロックしている場合でも、プロセスが常にサウンドカードを使用できるように、プロセスにいくつかのアクセス許可を設定することです。 それは可能ですか?私は音楽をよく聞くので、ほとんどの場合モニターをオンにしておく必要はないので、画面をロックするだけでいいのでお願いします。しかし、画面をロックすると、アクティブなセッションが非アクティブになり、amarokが再生を停止します。そして、はい、画面は単にオフにするだけでなく、ロックする必要があります。 編集: systemdが搭載されている場合もまったく同じ問題になるので、どのディストリビューションを使用しているかは重要ではないと思います。とにかく、私はdebian sidを使用していますが、systemd、udev(およびいくつかの依存関係)などの一部のパッケージは実験的なブランチからのもので、現在は219-9バージョンです。

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