GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte adresář pod /var/run při spouštění

Řešení 1:

Existují dvě alternativy, jak nechat systemd vytvořit adresáře pod /var/run / /run .

Obvykle nejjednodušší je deklarovat RuntimeDirectory v souboru jednotek vaší služby. Příklad:

RuntimeDirectory=foo

Tím se vytvoří /var/run/foo pro systémovou jednotku. (Poznámka:NEUVEĎTE úplnou cestu, pouze cestu pod /var/run ) Úplné dokumenty naleznete v příslušné položce v dokumentaci systemd.exec.


Pro běhové adresáře, které vyžadují složitější nebo jinou konfiguraci nebo záruky životnosti, použijte tmpfiles.d az vašeho balíčku pusťte soubor /usr/lib/tmpfiles.d/mydaemon.conf :

#Type Path            Mode UID      GID    Age Argument
d     /run/mydaemon   0755 myuser myuser   -   -

Úplné dokumenty tmpfiles.d naleznete zde.

Řešení 2:

Vytvořil jsem službu, která by na začátku vytvořila adresář:

vim /etc/systemd/system/mydaemon-helper.service

Obsah /etc/systemd/system/mydaemon-helper.service :

[Unit]
Description=MyDaemon Helper Simple Service
After=network.target

[Service]
Type=simple
ExecStartPre=-/usr/bin/mkdir /var/run/mydaemon
ExecStart=/usr/bin/chown myuser:myuser /var/run/mydaemon
Restart=on-abort


[Install]
WantedBy=multi-user.target

Pak jsem spustil tuto službu:

systemctl start mydaemon-helper

systemctl status mydaemon-helper

Výstup:

[[email protected] etc]# systemctl status mydaemon-helper.service
● mydaemon-helper.service - MyDaemon Helper Simple Service
   Loaded: loaded (/etc/systemd/system/mydaemon-helper.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

May 28 20:53:50 alpha systemd[1]: Starting MyDaemon Helper Simple Service...
May 28 20:53:50 alpha systemd[1]: Started MyDaemon Helper Simple Service.

Nakonec jsem řekl systému, aby jej načetl při spuštění:

systemctl enable mydaemon-helper


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  3. „Nelze vytvořit adresář mezipaměti /home//.composer/cache/repo/https—packagist.org/, nebo adresář není zapisovatelný. Pokračovat bez mezipaměti“?

  1. 20 Soubory protokolu Linux, které jsou umístěny v adresáři /var/log

  2. NGINX:connect() to unix:/var/run/php7.0-fpm.sock se nezdařilo (2:Žádný takový soubor nebo adresář)

  3. cp:nelze vytvořit adresář:Žádný takový soubor nebo adresář

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. Jak mohu přesunout adresář /var/log

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?