AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1424293
Accepted
João Rodrigues
João Rodrigues
Asked: 2019-04-12 07:17:15 +0800 CST2019-04-12 07:17:15 +0800 CST 2019-04-12 07:17:15 +0800 CST

Onde definir a variável PGOPTS no CentOS 7

  • 772

Estou utilizando o Postgresql 10 e após a instalação do banco de dados coloquei PGOPTS="-i"dentro deste arquivo /etc/sysconfig/pgsql/postgresqlpara que o Postgresql escutasse em todas as interfaces.

Quando eu estava usando o CentOS 6, funcionou e o postgresql começou com a -iopção na linha de comando.

Porém, precisei migrar o banco de dados para o CentOS 7 e o postgresql (agora passou a usar postmasterao invés do postgres) não inicializa com a opção.

Eu sei que no EL7, systemdé usado e o arquivo no diretório sysconfig pode não ser lido. Mas então, onde posso definir essa variável?

Também estou procurando definir essa variável como um novo arquivo. Como estou usando o Ansible, é um requisito para mim ter um novo arquivo com essa configuração. Isso significa que não quero editar arquivos existentes, como postgres.confcolocados no diretório de instalação do banco de dados. Isso só seria feito se não houvesse outra opção de definir a variável PGOPTS em algum lugar.

Eu tentei:

  • /usr/lib/systemd/system/postgresql.service.d/postgresql.confcom o seguinte dentro do [Service]grupo: Environment=PGOPTS=-i. Eu posso ver que o diretório é lido (e outras variáveis ​​são lidas - como PGDATA - mas não está lendo PGOPTS ou pelo menos o processo postmaster não está sendo iniciado com a opção); Por causa disso, também tentei configurá-lo /usr/lib/systemd/system/postgresql.servicesem sucesso;
  • /etc/conf.d/postgresqlmas, como li em algum lugar, não é mais usado;
  • /etc/profile.d/postgresql.shconfigurar e exportar a variável;
  • ~postgres/.bash-profileconfigurar e exportar a variável;
linux environment-variables centos
  • 1 1 respostas
  • 423 Views

1 respostas

  • Voted
  1. Best Answer
    user1686
    2019-04-12T07:38:17+08:002019-04-12T07:38:17+08:00

    Você está no caminho certo com systemd Environment= settings. (Por outro lado, o processo de inicialização do serviço não envolve nada como shells de usuário e logins interativos, portanto, os arquivos de "perfil" são absolutamente irrelevantes.)

    Mas o problema é que o daemon PostgreSQL não usa e nunca usou essa variável de ambiente em primeiro lugar. Não há nada no software real que faça com que o conteúdo de $PGOPTS seja magicamente anexado à linha de comando do daemon.

    Essa mágica costumava ser feita dentro do antigo script de inicialização ( /etc/rc.d/init.d/postgresqlque era usado pelo RedHat/CentOS antes do systemd) – na verdade não é usado como uma variável de "ambiente", mas como uma substituição direta na linha de comando 'postgres':

    111 # Substitua os padrões de /etc/sysconfig/pgsql se o arquivo estiver presente
    112 [ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME}
    113
    ...
    178 echo -n "$PSQL_START"
    179 $SU -l postgres -c "$PGENGINE/postmaster -p '$PGPORT' -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null
    180 sono 2
    

    Então, onde adicionar a -iopção de linha de comando, senão para $PGOPTS? Adicione-o diretamente à linha de comando 'postgres', é claro. A linha de comando completa é especificada em ExecStart= para postgresql.service do systemd; você pode ver que ainda mantém algumas substituições, mas também pode adicionar opções personalizadas diretamente:

    ExecStart=/usr/pgsql-11/bin/postmaster -D ${PGDATA}
    

    Altere isso para:

    ExecStart=/usr/pgsql-11/bin/postmaster -D ${PGDATA} -i
    

    Nota: não edite as unidades systemd em /usr/lib; em vez disso, copie o arquivo unit para /etc/systemd/system e edite sua cópia, para que suas alterações não sejam perdidas durante as atualizações do pacote.


    A página de manual do postmaster(1) diz:

    DESCRIPTION
        postmaster is a deprecated alias of postgres.
    
    • 1

relate perguntas

  • execute o contêiner do docker como root

  • Como fazer login no Centos 7 usando RDP do Win10

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve