Depende de como você está gerenciando seus serviços.
Com um gerente de serviço da família daemontools, apenas isso.
Seu programa atual run
basicamente se resumirá a
#!/bin/nosh chdir / setuidgid mongodb mongod
Este é, de fato, o programa muito básico do MongoDB run
que vem no pacote regular de serviços da minha suíte nosh , que não usa um shell como interpretador de scripts. interpretados em shell run
scripts para serviços gerenciados pelo daemontools como aquele usado pelo contegix ou O de Yoshiaki Kawazu pode parecer mais complexo, mas todos acabam tendo um comando exec setuidgid mongodb mongod
em algum lugar , mesmo que esteja oculto por trás das expansões de variáveis do shell.
Com os gerentes de serviço da família daemontools, run
programas como estes são, na essência, sequências simples de comandos de carregamento em cadeia. O programa numactl
também é um comando de carregamento em cadeia, que modifica as configurações de seu próprio processo, depois acorrenta a um programa chamado em sua linha de comando. Ele se encaixa bem com as ferramentas daemontools, como setuidgid
.
Então você acabou de adicionar numactl
na cadeia, que seria
#!/bin/nosh chdir / numactl --interleave=all -- setuidgid mongodb mongodem um script nosh ou
exec \ numactl --interleave=all -- \ setuidgid mongodb \ mongodem um script de shell. (Em um script de shell, você pode fazer com que o script tente detectar automaticamente a presença de
numactl
. Basta clicar no mecanismo do povo iniciante, abaixo.)
Em seguida, basta reiniciar o serviço com (apenas nosh)
system-control condrestart mongod.serviceou com
svc -t /service/mongodbse você estiver usando o diretório daemontools
/service
convencional antigo.
Com o systemd, apenas isso.
No seu arquivo de unidade mongod.service
, haverá uma seção com
[Service] User=mongodb ExecStart=/usr/local/bin/mongod $OPTIONS run
Isso é o que você encontrará em a unidade de serviço systemd que é fornecida com o mongodb , que é um pouco, mas não muito mais complexo.
Então, faça o que você sugeriu e modifique a configuração ExecStart
:
ExecStart=/usr/bin/numactl --interleave=all -- /usr/local/bin/mongod $OPTIONS run
Coloque isso em um arquivo de unidade /etc/systemd/service/mongod.service
de substituição para substituir completamente o arquivo de unidade fornecido pelo pacote ou retenha o arquivo de unidade fornecido pelo pacote e use uma substituição apenas para essa configuração em (digamos) /etc/systemd/service/mongod.service.d/numactl.conf
.
Em seguida, basta recarregar a unidade de serviço do (s) arquivo (s) com
systemctl daemon-reloade reinicie o serviço com
systemctl condrestart mongod.service
Com o upstart, nada mesmo.
As respostas no link no AskUbuntu estão chegando aos 2 anos de idade, agora. Nesse meio tempo, a numactl
capacidade foi colocada em o arquivo de trabalho inicializado fornecido pelo pacote .
Então o seu sistema, presumindo que esteja atualizado, já deveria estar fazendo isso e você não deveria precisar de um
initctl restart mongodb