Onde o script systemd para mysql.service está localizado?

3

Na verdade, estou usando o MariaDB (substituto do MySQL).

Estou tentando fazer algumas alterações no meu arquivo systemd mysql.service.

Eu posso ver que existe porque o comando sudo systemctl o lista e indica que ele está carregado / ativo / em execução.

O problema é que não consigo encontrar o arquivo para fazer edições. Pelo que li em vários artigos, descobri que o documento deve estar localizado em

/etc/systemd/system/multi-user.target.wants/mysql.service

Mas não é. Eu naveguei através de outros diretórios no nível / etc / systemd sem sucesso. Alguma idéia?

    
por David Mackey 04.12.2015 / 12:56

7 respostas

6

Para unidades definidas em arquivos estáticos, você pode usar systemctl status , com as informações exibidas emitindo esse comando, você poderá ver sua localização.

Por exemplo:

# systemctl  status sshd
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2016-10-31 17:01:01 UTC; 1 weeks 0 days ago
 Main PID: 283 (sshd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/sshd.service
           └─290 /usr/bin/sshd -D

Note que o comando tab pode ser útil aqui.

Portanto, no meu sistema, os serviços systemd são colocados sob /usr/lib/systemd/ . Por favor, note que pode haver pastas nesse local.

Outra maneira é usar o comando find nesse local específico para encontrar um serviço:

# find /usr/lib/systemd/ | grep -i mysql

Espero que ajude;)

    
por 08.11.2016 / 10:48
3

A localização padrão do script de inicialização systemd é:

/lib/systemd/system

Mas a maneira preferida de modificá-los é criar um script personalizado em:

/etc/systemd/system
Os scripts

na última pasta substituem o script na localização anterior.

    
por 04.12.2015 / 13:05
1

Em seu caso particular, provavelmente é porque o MySQL não possui um arquivo de serviço systemd, mas apenas um script de init SystemV em /etc/init.d/mysql . Você precisa usar systemctl ou service para controlá-lo. Executar /etc/init.d/mysql stop faz o systemd pensar que ele caiu e o reinicia.

Não tenho certeza se o novo Ubuntu também faz isso, mas os mais antigos definitivamente.

    
por 08.11.2016 / 16:07
0

Eu uso o Ubuntu 16.04! após modificar o /etc/security/limit.conf e /etc/mysql/my.cnf, execute o sudo systemctl edit mysql.service

adicionando as seguintes linhas

[Service] e LimitNOFILE=infinity

    
por 08.11.2016 / 07:32
0

Mais genericamente, para encontrar um arquivo pelo nome, você pode usar uma das seguintes abordagens:

  • find / -iname "<filename>"
  • updatedb && locate <filename>
por 08.11.2016 / 10:32
0

systemd

De acordo com a documentação oficial do systemd no site maria.db, os arquivos de configuração para o maria O serviço .db é armazenado aqui:

/usr/lib/systemd/system/mariadb.service

informações rápidas do systemd:

systemd is an init replacement that MariaDB uses on releases since 10.1.8. Distribution packages before this version may use a different configuration so consult their documentation if required.

... e para o arquivo de configuração, temos:

The service definition is installed in /usr/lib/systemd/system/mariadb.service. The service name is mariadb.service; however aliases to mysql.service and mysqld.service are included for convenience.

Se a sua instalação estiver usando um arquivo de configuração personalizado para iniciar o serviço maria.db, você poderá encontrar o script neste local:

/etc/systemd/system/mariadb.service.d/XXXX.conf

Onde XXXX pode ser qualquer nome de arquivo!

Isso pode ser devido à recomendação feita no link acima mencionado:

If there are some systemd settings to override or to set, create a file /etc/systemd/system/mariadb.service.d/XXXX.conf file where XXXX is something meaningful to you and place the configuration option(s) in an appropriate section, usually [Service]. If a systemd option is a list you may need to set this to empty before you set the replacement values....

No feedback para o artigo on-line, há um pequeno comentário que aponta que:

MariaDB 10.1.17 and other recent releases still include an init script as well as a systemd unit. The init script ships with chkconfig on and this causes a race condition as to which version of the daemon starts first. This has causes us significant problems with RPM updates and system reboots.

Isso me leva à conclusão de que você ainda deve procurar as variantes init.d dos arquivos de configuração (como apontado em minha versão inicial deste post) para identificar seus problemas.

init.d

Eu verificaria o diretório /etc/init.d para a existência de um arquivo mysql ou mariadb.

ls /etc/init.d -lash

Se você abrir o arquivo correspondente (por exemplo, mysql no meu servidor Ubuntu), você pode encontrar a parte de inicialização.

cat /etc/init.d/mysql

(nota: nenhum arquivo mysqld, apenas um arquivo mysql simples)

Em algum momento, você encontrará as verificações de integridade no script de inicialização do serviço:

## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
  # check for config file
  if [ ! -r /etc/mysql/my.cnf ]; then
    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
  fi

Assim, o arquivo real da minha configuração seria o arquivo /etc/mysql/my.cnf. Então vá de lá.

Sua configuração pode ser diferente, mas com esse conhecimento você deve ser capaz de encontrar o arquivo de configuração para o seu serviço.

    
por 08.11.2016 / 09:36
0

Aqui está como eu encontrei no meu Ubuntu 16

#list all timer
systemctl list-timers #--> got apt-daily.service

#locate where is systemd 
sudo find / -name apt-daily.service
> /lib/systemd/system/apt-daily.service #--> /lib/systemd/system/
    
por 06.03.2018 / 15:00