web-dev-qa-db-fra.com

Où est SystemD Script pour MySQL.Service situé?

J'utilise réellement mariadb (remplacement de chute de mySQL).

J'essaie de modifier le fichier SystemD MySQL.Service.

Je peux le voir existe car il existe que le Sudo SystemCtL le répertorie et indique qu'il est chargé/actif/en cours d'exécution.

Le problème est que je ne trouve pas le fichier pour faire des modifications. De ce que j'ai lu dans divers articles que j'ai trouvés est que le doc doit être situé à

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

Mais ce n'est pas le cas. J'ai parcouru d'autres répertoires sur le niveau/etc/systemd en vain. Des idées?

7
David Mackey

Pour les unités définies dans des fichiers statiques, vous pouvez utiliser systemctl status, avec les informations émettrices de la commande, vous pourrez voir son emplacement.

Par exemple:

# 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

Notez que la commande d'onglets pourrait être utile ici.

Par conséquent, dans mon système, les services SystemD sont placés sous /usr/lib/systemd/. Veuillez noter qu'il pourrait y avoir des dossiers à cet endroit.

Une autre manière consiste à utiliser la commande find dans cet endroit spécifique pour trouver un service:

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

J'espère que cela aide;)

10
Adrian Antunez

L'emplacement par défaut pour SystemD Init Script est:

/lib/systemd/system

Mais le moyen préféré de les modifier est de créer un script personnalisé dans:

/etc/systemd/system

les scripts dans le dernier dossier remplacent le script dans l'ancien emplacement.

3
473183469

Dans votre cas particulier, c'est probablement parce que MySQL n'a pas de fichier de service SystemD, mais seulement un script SystemV init dans /etc/init.d/mysql. Vous devez utiliser systemctl ou service _ pour le contrôler cependant. Fonctionnement /etc/init.d/mysql stop fait SystemD pense qu'il s'est écrasé et le redémarre.

Je ne sais pas si le plus récent Ubuntu le fait aussi, mais les plus âgés définitivement.

2
Halfgaar

J'utilise Ubuntu 16.04! après modification /etc/security/limit.conf et /etc/mysql/my.cnf, puis exécutez
[.____] Sudo systemctl edit mysql.service

[.____] Ajouter des lignes suivantes

[.____] [Service]
[.____] LimitNOFILE=infinity

0
Justin Zhu

systémique

Selon la documentation officielle de SystemD sur le site maria.db, les fichiers de configuration du service maria.db sont stockés ici:

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

systemD Info rapide:

systemD est un remplacement d'introduction que Mariadb utilise des versions depuis 10.1.8. Les packages de distribution avant que cette version puissent utiliser une configuration différente afin de consulter leur documentation si nécessaire.

... et pour le fichier de configuration, nous avons:

La définition de service est installée dans /usr/lib/systemd/system/mariadb.service. Le nom du service est Mariahb.Service; Cependant, des alias à MySQL.Service et MySQLD.Service sont inclus pour plus de commodité.

Si votre installation utilise un fichier de configuration personnalisé pour démarrer le service maria.db, vous trouverez peut-être le script à cet endroit:

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

où xxxx peut être n'importe quel nom de fichier!

Cela pourrait être dû à la recommandation formulée dans le mentionnement ci-dessus Link :

S'il y a des paramètres SystemD pour remplacer ou définir, créez un fichier /etc/systemd/system/mariadb.service.d/xxxx.conf dans lequel XXXX est quelque chose de sens à vous et placez l'option de configuration dans une section, généralement [service]. Si une option SystemD est une liste, vous devrez peut-être définir cela pour vider avant de définir les valeurs de remplacement ....

Dans la rétroaction à l'article en ligne, il existe un bref commentaire qui souligne que:

Mariadb 10.1.17 et d'autres versions récentes incluent toujours un script init ainsi qu'une unité SystemD. Le script Init est livré avec chkconfig sur et cela provoque une condition de course quant à quelle version du démon commence en premier. Cela nous permet de poser des problèmes significatifs avec des mises à jour de RPM et des redémarrages du système.

Cela me conduit à la conclusion que vous devrez peut-être toujours rechercher les variantes init.d des fichiers de configuration (comme indiqué dans ma version initiale de ce message) pour identifier vos problèmes.

init.d

Je vérifierais le répertoire /etc/init.d Pour l'existence d'un fichier MySQL ou MARIADB.

ls /etc/init.d -lash

Si vous ouvrez ensuite le fichier correspondant (E.G. MySQL sur mon serveur Ubuntu), vous pouvez trouver la partie de démarrage.

cat /etc/init.d/mysql

(Remarque: Aucun fichier mysqld, juste un fichier de mySQL uni)

À un moment donné, vous trouverez les chèques Sanity dans le script de démarrage du service:

## 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

Donc, le fichier réel de ma configuration serait le fichier /etc/mysql/my.cnf. Ensuite, passez de là.

Votre configuration peut différer, mais équipé de cette connaissance, vous devriez pouvoir trouver le fichier de configuration de votre service.

0
John aka hot2use

Sur Ubuntu, vous pouvez le trouver à

/lib/systemd/system/mysql.service

Une fois, j'ai essayé d'exécuter la commande SystemCtl Activer MySQL.Service, mais j'ai constaté qu'il recherche le fichier sur/etc/systemd/system/(où il y a généralement un lien dur pour celui-ci) et dans mon cas il n'y avait pas de mysql.service déposer là-bas. J'ai donc créé un lien dur avec:

ln -t /lib/systemd/system/mysql.service /etc/systemd/system/mysql.service

0
Hussein Hijazi