GNU/Linux >> Znalost Linux >  >> Linux

Upstart:spuštění služby po procesu, který není spuštěn

Máte několik možností:

1) přimějte mysql, aby informoval Upstart, že začal odesláním události

initctl emit mysql-started “ nebo podobně.

To lze vyřešit přidáním initctl vyvolání na /etc/init.d/mysql .

2) Zakažte mysql na normálních úrovních běhu SysV a vytvořte obálkovou úlohu Upstart, která jej spustí (ne, toto nezvládá zastavení - jen příklad):

cat >>/etc/init/mysql-sysv.conf<<EOT
  # wait for SysV job to finish
  start on stopped rc
  exec /etc/init.d/mysql start
EOT

Pak si dejte svou práci "start on started mysql-sysv ".

."

Problém je v tom, že se dostanete do potíží, pokud někdo (nebo nějaký systémový nástroj automaticky) znovu přidá /etc/rc?.d odkazuje na původní /etc/init.d/mysql servisní skript. Také můžete zjistit, že mysql není ve skutečnosti připraveno až po nějaké době poté jeho hlavní pid začal. Databáze jsou problematické, protože jejich „online“ může nějakou dobu trvat, i když byly spuštěny (přehrání protokolu transakcí atd.).

3) Vytvořte počáteční úlohu ("waiter"), která se "spustí při zastaveném rc" (tj. spustí se, když všechny úlohy SysV prohlásily, že byly dokončeny) a poté se dotazuje, až bude mysql připraveno, a poté se ukončí. Nechte svou práci „začít na zastaveném číšníkovi“.

4) Převeďte mysql na úlohu Upstart (nejlepší možnost). Zde je výchozí bod pro počáteční konfiguraci mysql:https://github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu


Linux
  1. Služba MongoDB se po počátečním nastavení nespustí

  2. Nelze spustit službu postgresql na CentOS 7

  3. Jak spustit službu systemd po přihlášení uživatele a zastavit ji před odhlášením uživatele

  1. Jak zastavit proces v MySQL

  2. Centos – Systemd ukončí službu ihned po spuštění?

  3. Jak automaticky spustit mysql po restartu serveru (CentOS + další distribuce)?

  1. Nepodařilo se spustit komunitní server Thesql (5.7)?

  2. Linux:proces do služby

  3. Systemd:Použití After a Requires