[LINUX] Quand j'ai coupé le répertoire pour UNIX Socket sous / var / run avec systemd, je suis resté coincé dans un piège et que faire

Environnement de contrôle de fonctionnement

** * Ubuntu 20.04 a la même implémentation, donc je pense que vous en serez également accro **

Flow accro aux pièges

Chose que tu veux faire

--Je veux créer un serveur API pour une application appelée hoge --La réception reçoit une demande avec nginx et la transmet à l'application --hoge est transformé en un démon avec systemd --hoge reçoit une requête de nginx avec ʻUNIX Socket --ʻUNIX Socket est / var / run / hoge / hoge.sock

Ce que j'ai fait

--Créez un répertoire / var / run / hoge

Cause

# /var/courir est/Lien symbolique à exécuter
$ ls -ld /var/run
lrwxrwxrwx. 1 root root 6 Jul 25  2019 /var/run -> ../run

# /exécuter les montages tmpfs
$ mount | grep /run
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)

approche

Ajoutez le paramètre RuntimeDirectory au fichier d'unité systemd

Selon la [page MAN] de tmpfiles.d (https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html#Description)

Original


System daemons frequently require private runtime directories below /run to store communication sockets and similar.
For these, it is better to use RuntimeDirectory= in their unit files (see systemd.exec(5) for details), if the flexibility provided by tmpfiles.d is not required.
The advantages are that the configuration required by the unit is centralized in one place, and that the lifetime of the directory is tied to the lifetime of the service itself.
Similarly, StateDirectory=, CacheDirectory=, LogsDirectory=, and ConfigurationDirectory= should be used to create directories under /var/lib/, /var/cache/, /var/log/, and /etc/.
tmpfiles.d should be used for files whose lifetime is independent of any service or requires more complicated configuration.

Traduction en japonais


Le démon système est utilisé pour stocker les sockets de communication, etc./Vous avez souvent besoin d'un répertoire d'exécution privé en cours d'exécution.
Pour ceux-ci, tmpfiles.Si vous n'avez pas besoin de la flexibilité offerte par d, le RuntimeDirectory dans le fichier d'unité=Il est recommandé d'utiliser (pour plus d'informations, systemd.Voir exec (5)).
L'avantage est que la configuration requise pour l'unité est centralisée en un seul endroit, et la durée de vie de l'annuaire est associée à la durée de vie du service lui-même.
De même/var/lib/、/var/cache/、/var/log/,et/etc/Pour créer un répertoire sous, StateDirectory=、CacheDirectory=、LogsDirectory=,etConfigurationDirectory=Doit être utilisé.
tmpfiles.d doit être utilisé pour les fichiers dont la durée de vie est indépendante du service ou qui nécessite une configuration plus complexe.

Puisqu'il y en a, ajoutez le paramètre RuntimeDirectory.

De plus, puisque nous voulons définir l'autorisation sur «0755» cette fois, définissez «RuntimeDirectoryMode» comme suit.

Lignes ajoutées au fichier UNIT


RuntimeDirectory=hoge
RuntimeDirectoryMode=0755

Lien de référence

Recommended Posts

Quand j'ai coupé le répertoire pour UNIX Socket sous / var / run avec systemd, je suis resté coincé dans un piège et que faire
Ce que j'ai fait quand je suis resté coincé dans le délai avec lambda python
Je suis resté bloqué en essayant de spécifier un chemin relatif avec relative_to () en python
Un rappel de ce que je suis resté coincé lors du démarrage d'Atcoder avec python
django geodjango auquel j'ai fait référence quand je suis resté coincé dans le tutoriel (édition)
Automatisez la suppression de l'arrière-plan pour les derniers portraits dans un répertoire avec Python et API
Quand j'ai essayé de faire une communication socket avec Raspberry Pi, le protocole était différent
Que faire lorsque seule la fenêtre est affichée et que rien ne s'affiche dans le pygame
Ce que j'ai fait quand j'étais en colère de le mettre avec l'option enable-shared
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
Ce à quoi j'étais accro lorsque j'ai construit mon propre réseau de neurones en utilisant les poids et les biais que j'ai obtenus avec le classificateur MLP de scikit-learn.
[Pour les débutants en informatique] Que faire lorsque la commande rev ne peut pas être utilisée avec Git Bash
Que faire lorsqu'une partie de l'image d'arrière-plan devient transparente lorsque l'image transparente est combinée avec Oreiller
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
[AWS] Que faire lorsque la commande ping provoque un "délai d'expiration"
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Que faire lorsque le type de valeur est ambigu en Python?
Que dois-je faire avec la structure de répertoires Python après tout?
Que faire si vous obtenez un avertissement "Mauvaise plateforme Python" lors de l'utilisation de Python avec l'EDI NetBeans
[Python] Que faire en cas de violation de PEP8 lors du processus d'importation à partir du répertoire ajouté à sys.path
Comment écrire quoi faire lorsque l'application est affichée pour la première fois dans Qt pour Python avec Designer
Que faire si vous obtenez l'erreur RuntimeError: Python n'est pas installé en tant que framework lorsque vous essayez d'utiliser matplitlib et pylab dans Python 3.3
FBX SDK De quelles compétences ai-je besoin pour créer un programme à l'aide de Python?
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
Que faire lorsque le résultat téléchargé via scrapy est en anglais
Je suis resté coincé dans la redirection d'une application flask avec un proxy inverse entre les deux
Que faire lorsque l'avertissement "L'environnement est cohérent ..." apparaît dans l'environnement Anaconda
Que faire lorsqu'un message d'avertissement est affiché dans la liste des pip
Représenter des conteneurs dans un cadre imbriqué (schéma) dans Jupyter, et ce que j'ai étudié en cours de création
L'histoire qui n'avait rien à voir avec la partition lorsque j'ai fait une sauvegarde de disque avec dd pour la première fois
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Quand j'ai essayé d'utiliser Python sur WSL (sous-système Windows pour Linux), il est resté bloqué dans Jupyter (résolu)
J'ai eu la date du riz du pub de Kagawa et j'ai dessiné un graphique
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
J'ai eu une erreur en essayant d'exécuter Hello World en langue Go
Que faire lorsqu'un avertissement apparaît autour de l'intégration de Python dans CheckHealth de Neovim
Une fenêtre étrange apparaît lors de l'utilisation de la boîte de dialogue Ouvrir le répertoire dans Tkinter
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
Ce que j'ai pensé et appris à étudier pendant 100 jours dans une école de programmation
Que faire lorsque [Errno 2] Aucun fichier ou répertoire de ce type n'apparaît en Python
Que faire lorsque le graphique n'apparaît pas sur le notebook Jupyter (IPython)
Que faire si une erreur de version se produit dans le pilote Selenium Chrome
[EC2] Que faire lorsque le sélénium est bloqué et que le traitement ne se poursuit pas
Comment obtenir une liste de fichiers dans le même répertoire avec python