
MongoDBを実行するには、次の作業を行う必要があります。
$numactl --interleave=all /usr/bin/mongod --config /etc/mongod.conf &
上記のオプションでmongoデーモンを実行するには、何を変更する必要がありますか?
答え1
サービスをどのように管理するかによって異なります。
daemontools Service Managerスイートを使用するだけです。
現在のrun
プログラムは本質的に次のように要約される。
#!/空/ノッシュ chdir/ setuidgid モンゴディビ モンゴールド
run
これは、一般的なサービスパックに含まれている非常に基本的なMongoDBプログラムです。私のスナックスイート、これはシェルをスクリプトソルバーとして使用しません。run
daemontools が管理するサービスのシェル解析スクリプト。contegixで使用するものまたは川津義樹の一人もっと複雑に見えるかもしれませんが、最終的にはexec setuidgid mongodb mongod
コマンドがあります。どこかに、シェル変数拡張の後ろに隠されていても同じです。
daemontools サービスマネージャスイートの場合、run
これらのプログラムは本質的に単純なチェーンローディングコマンドシーケンスです。このnumactl
プログラムは、独自のプロセスの設定を変更してから、コマンドラインで指定されたプログラムに接続するチェーンロードコマンドでもあります。次のdaemontoolsツールに最適です。setuidgid
。
したがって、そこにチェーンを追加するだけnumactl
です。
#!/空/ノッシュ chdir/ numactl --interleave=all-- setuidgid モンゴディビ モンゴールドnoshスクリプトで、または
実装する\ numactl --interleave=all--\ setuidgid mongodb\ モンゴールドシェルスクリプトから。 (シェルスクリプトでは、スクリプトが存在するかどうかを自動的に検出することができます。
numactl
以下の新人からメカニズムを盗むだけです。)
その後、サービスを再起動します(noshのみ)。
システム制御 condrestart mongod.serviceまたは
svc -t /service/mongodb以前の一般的なdaemontoolsディレクトリを使用している場合
/service
。
systemdを使用すると、それはすべてです。
ユニットファイルにはmongod.service
セクションがあります
[提供する] ユーザー=モンゴディビ ExecStart=/usr/local/bin/mongod $OPTIONS 実行
これはあなたが見つけるでしょうmongodbに含まれるsystemdサービスユニット、もう少し複雑ですが、それほど複雑ではありません。
ExecStart
したがって、提案に従って設定を変更するだけです。
ExecStart=/usr/bin/numactl --interleave=all -- /usr/local/bin/mongod $OPTIONS 実行
これを代替ユニットファイルに入れてパッケージ/etc/systemd/service/mongod.service
提供ユニットファイルを完全にオーバーライドするか、パッケージ提供ユニットファイルを保持し、たとえば設定の場合にのみオーバーライドを使用します/etc/systemd/service/mongod.service.d/numactl.conf
。
次に、ファイルからサービスユニットを再ロードします。
systemctlデーモンの再ロードそしてサービスを再起動してください
systemctl condrestart mongod.service
ヌボ金持ちには残りはありません。
答えはあります。https://askubuntu.com/questions/293468/AskUbuntuのコンテンツは現在ほぼ2年になりました。同時に、numactl
能力が配置されました入力するパッケージが提供するupstart作業ファイル。
したがって、システムが最新の状態であると仮定すると、すでにこれを行っています。
initctl mongodbの再起動