問題タブ [systemctl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unix - Systemctl の [RequiredBy] ディレクティブの目的
サービス ユニット ファイルの [Unit] 部分に [Requires] ディレクティブがある場合、なぜサービス ユニット ファイルの [Install] セクションにも [RequiredBy] ディレクティブが必要なのか..[インストール]部分は、サービスが有効になっているときに実行されます(サービスはサーバーの再起動後に再起動する必要があります)ので、[RequiredBy]ディレクティブを指定しなくても、サーバーの再起動後もsystemctlは[Requires]ディレクティブをチェックします必要なサービス/ターゲットユニットを開始します...これを明確にしてください、私はSystemctlユーティリティの初心者です。
linux - Service が Systemctl で実行されていない場合、ExecStopPost が実行されない
問題は、サービスが実行されておらず、stop service コマンドを実行しようとしたことです。そのため、systemctl stop $servicename.service を使用してサービスを停止しようとすると、サービスが実行されていないため、ExecStop コマンドが実行されないため、ExecStopPost も実行されません。サービスが実行されておらず、stop service コマンドを実行しようとしています。
redhat - systemd `systemctl stop` は積極的にサブプロセスを強制終了します
私は、2 つのサブプロセスを開始するデーモンのようなプロセスを持っています (そして、サブプロセスの 1 つが他の 10 までのサブプロセスを開始します)。プロセスをsystemctl stop
実行すると、子サブプロセスが「積極的に」強制終了されたように見えます。これによりsystemctl
、プロセスがクリーンアップされる機会がありません。
systemctl stop
アグレッシブなキルをやめて、プロセスが整然としたクリーンアップを調整できるようにするにはどうすればよいですか?
timeoutSec=30
私は無駄にしようとした。
ansible - ansible:centos 7でauditdサービスを再起動する方法は、依存関係に関するエラーを取得します
私のプレイブックでは、audit.rules を更新し、auditd サービスを再起動する必要があるハンドラーに通知するタスクがあります。
Playbook が実行されると、監査ルールが更新され、auditd の再起動が要求されますが、これは以下のように失敗します。
auditd のユニット定義を見ると、rejectManualStop=yes と表示されます。これがサービスを再起動できない理由ですか? これをどのように乗り越えて、新しい監査ルールを取得しますか?
sbt - SBT パッケージャーによって生成された起動スクリプトが機能しない
Pure-Java プラグインを使用して Debian パッケージを作成する SBT プロジェクトがあります。プラグインは plugins.sbt で次のように定義されています。
SBT コンソールで、次のコマンドを実行します。
これにより、Ubuntuマシンにインストールしようとしている.debファイルが生成されますdpkg -i <filename>
パッケージがインストールされます。ライブラリや構成などは /usr/share/ に配置されていますが、これは私が期待していたものです。そのフォルダーには、プログラムを直接起動するスクリプトを含む bin フォルダーも含まれています。ここまでは順調ですね。
ただし、 を使用してプログラムを起動したいのですがservice start <projectname>
、動作しません。についても同様です/etc/init.d/<projectname> start
。後者のコマンドの出力は次のとおりです。
しかし、で確認すると、プロセスが実行されていませんps
。/etc/init.d/<projectname> の内容は次のとおりです。
簡単なデバッグを行ったところ、コマンド ライン引数が「start」の場合、スクリプトが 2 番目のソース ステートメントを通過しないことがわかりました。source /lib/lsb/init-functions
Systemctl から次の出力が得られます。
<projectname>.service loaded active exited LSB: <projectname>
を使用してスクリプトも実行しましたbash -x
が、読み方がわからないかなりの出力が生成されます。
ここで何が起こっているか知っている人はいますか?パッケージャーを使用してパッケージとしてインストールすることの全体的なポイントは、これらのような頭痛を避けることです...
service - systemctl enable は機能しますが、systemctl --user enable は機能しません
Ubuntu 16.04.1x64 を実行している DO ドロップレットがあり、IPFSを systemd サービスとして実行しようとしています。先に進んで、ユーザー「connor」を作成し、ここの手順に従って IPFS をインストールしました。サービスを「ipfs.service」として ~/.config/systemd/user/ipfs.service に保存しています。これは次のようになります。
奇妙なのは、systemctl --user start ipfsを実行すると問題なく起動することです。ただし、systemctl --user daemon-reloadを 実行してからsystemctl --user enable ipfsを実行すると、次のエラーが表示されます。
操作の実行に失敗しました: そのようなファイルまたはディレクトリはありません
ただし、systemctl enable /home/connor/.config/systemd/user/ipfs.service -fを実行すると、問題なく動作します。再起動して IPFS コマンドを問題なく実行できます。ユーザーとして実行したいのですが、何が間違っているのかを理解したいと思います。
squid - systemctl でイカを起動する
ブロードバンド リンクに接続されたシステム (debian) があります。リンクから DHCP アドレスを収集します。これは、DNS にアクセスする方法です。
システムには、いくつかのリクエストを処理する squid (3) も含まれています。
再起動するまで、すべてが完全に機能します。その後、squid は正しく起動しません。squid を再起動すると問題が解決します。
その理由は、DNS が設定される前に squid の起動が早すぎることが原因のようです (ただし、リクエストを受信すると DNS が設定されます)。
network-online.target を待つために systemctl を使用して squid を遅らせてみましたが、それでも早すぎます。
これを解決するために systemctl/etc を使用する方法のアイデア/ヒントを誰かが持っていますか?
dns-is-available.target または delay-30-seconds-after-network-online.target のいずれかが必要だと思います...またはいくつかの賢い考え。
モナサン