GNU/Linux >> Znalost Linux >  >> Ubuntu

Nejlepší způsob, jak udělat vypínací hák?

Vzhledem k tomu, že Ubuntu již nějakou dobu spoléhá na upstart, rád bych použil úlohu upstart k elegantnímu vypnutí určitých aplikací při vypnutí nebo restartu systému. Je nezbytné, aby se vypínání nebo restartování systému zastavilo, dokud nebudou tyto aplikace ukončeny.

Aplikace budou příležitostně spouštěny ručně a při vypnutí systému by měly být automaticky ukončeny skriptem (který již mám). Vzhledem k tomu, že aplikace nelze spolehlivě ukončit bez spuštěných (téměř všech) ostatních služeb, je třeba aplikace ukončit dříve, než začne zbytek vypínání.

Myslím, že to mohu vyřešit počáteční úlohou, která se spustí při vypnutí, ale nejsem si jistý, které události bych měl jakým způsobem použít. Zatím jsem četl následující (částečně protichůdná) tvrzení:

  • V upstart nedochází k žádné obecné události vypnutí
  • Použijte stanzu jako start on starting shutdown v definici práce
  • Použijte stanzu jako start on runlevel [06S] v definici práce
  • Použijte stanzu jako start on starting runlevel [06S] v definici práce
  • Použijte stanzu jako start on stopping runlevel [!06S] v definici práce

Z těchto doporučení vyvstávají následující otázky:

  • Existuje nebo neexistuje obecná událost vypnutí v upstartu Ubuntu?
  • Jaký je doporučený způsob implementace „vypínacího háku“?
  • Kdy jsou spuštěny události runlevel [x]; je to při vstupu do úrovně běhu nebo při vstupu do úrovně běhu?
  • Můžeme použít něco jako start on starting runlevel [x] nebo start on stopping runlevel [x] ?
  • Jaké by bylo nejlepší řešení mého problému?

Děkuji mnohokrát

Přijatá odpověď:

starting a runlevel jsou samostatné události, takže nemůžete smysluplně říct starting runlevel N .

runlevel N událost se vygeneruje na začátku vstupu do úrovně běhu. Pokud start on runlevel N pak váš úkol běží při vstupu. Způsob spuštění po dokončení vstupu do úrovně běhu je run on started rc RUNLEVEL=N .

Pokud tomu dobře rozumím, potřebujete start on runlevel [06S] dělat, co chcete; měl by teoreticky běžet, než se zastaví cokoliv jiného. Pro jemnější ovládání můžete použít start on stopping apache or stopping mysql or ... aby se vaše úloha spustila dříve, než bude povoleno vypnout kteroukoli z nich.

Související:Jak zamknout obrazovku pomocí nové zamykací obrazovky z příkazového řádku?

Upraveno pro změnu úrovně běhu 5 na S.


Ubuntu
  1. Reboot Survival – Nejlepší postupy

  2. Centos – nejlepší způsob, jak přidat stálou trasu?

  3. Nejlepší způsob, jak připojit vzdálenou složku?

  1. Nejlepší způsob testování Ubuntu na počítači?

  2. Nejlepší způsob, jak zkompilovat jádro pro procesor I7?

  3. Jaký je nejlepší způsob, jak vypálit video soubor na DVD?

  1. Jaký způsob, jak zajistit, aby aplikace nainstalované Snap vypadaly přirozeněji?

  2. Jaký je nejlepší způsob, jak vytvořit flash disk s mnoha zaváděcími věcmi

  3. Jaký je nejlepší způsob, jak se naučit SELinux?