Můj skript neběží při bootování v tulákovské krabici pod Ubuntu.
Můj skript vypadá takto –
#!/bin/bash
# /etc/init.d/mailcatcher
### BEGIN INIT INFO
# Provides: scriptname
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
mailcatcher --http-ip 192.168.50.10
Moje oprávnění k souboru vypadají takto –
-rwxr-xr-x 1 root root 352 Apr 30 09:59 mailcatcher.sh
Spustím příkaz –
sudo update-rc.d "mailcatcher.sh" defaults
Pokud skript spustím ručně, funguje a spustí se mailcatcher. Pokud restartuji počítač, démon mailcatcher se nespustí. Uniká mi něco?
Přijatá odpověď:
A teď k odpovědím Ubuntu.
Toto je otázka Ubuntu Linux a verze 15 je nyní vydána. Svět Ubuntu má nyní systemd. Ale ještě před verzí 15 byl svět Ubuntu na vzestupu. Opravdu není důvod psát System 5 rc
skripty; a rozhodně není dobrý důvod začínat odtud.
Jak upstart, tak systemd provádějí všechny „servisní kontroly“. Vše, co musíte udělat, je popsat službu .
systemd
Systémová servisní jednotka, která má být umístěna v /etc/systemd/system/mailcatcher.service
, je
[Unit] Description=Ruby MailCatcher Documentation=http://mailcatcher.me/ [Service] # Ubuntu/Debian convention: EnvironmentFile=-/etc/default/mailcatcher Type=simple ExecStart=/usr/bin/mailcatcher --foreground --http-ip 192.168.50.10 [Install] WantedBy=multi-user.target
Tím se automaticky získá jeden ze všech systémových ovládacích prvků, jako například:
systemctl enable mailcatcher.service
pro nastavení automatického spouštění služby při bootování.systemctl preset mailcatcher.service
pro nastavení automatického spouštění služby při bootování, pokud to místní politika umožňuje.systemctl start mailcatcher.service
pro ruční spuštění služby.systemctl status mailcatcher.service
zobrazíte stav služby.
začátečník
Upstart je podobný a úprava souboru úlohy upstart společnosti Fideloper LLC na tuto otázku dává toto pro /etc/init/mailcatcher.conf
:
description "Mailcatcher" start on runlevel [2345] stop on runlevel [!2345] respawn exec /usr/bin/mailcatcher --foreground --http-ip=192.168.50.10
Tím se automaticky získá jeden ze všech počátečních ovládacích prvků, jako například:
initctl start mailcatcher
pro ruční spuštění služby.initctl status mailcatcher
zobrazíte stav služby.
Sekce bonusových daemontools
Pro nakopnutí, pro zábavu všech lidí používajících daemontools-rodiny, kteří se k tomu dostanou přes WWW vyhledávání, a pro demonstraci dalšího důvodu, proč nezačít na System 5 rc
skripty, spustil jsem servisní jednotku systemd prostřednictvím convert-systemd-units
sady nástrojů nosh příkaz k vytvoření následujícího skriptu pro spuštění rodiny daemontools:
#!/bin/nosh #Run file generated from ./mailcatcher.service #Ruby MailCatcher chdir / read-conf --oknofile /etc/default/mailcatcher /usr/bin/mailcatcher --foreground --http-ip 192.168.50.10
Vlastně convert-systemd-units
příkaz vygeneruje celý nosh balíček služeb adresář. S tímto adresářem, který určuje závislost a informace o objednávání, nainstalovaný jako /var/sv/mailcatcher
v systému s nosh service-manager
získáte všechny ovládací prvky Nosh, jako například:
system-control enable mailcatcher.service
pro nastavení automatického spouštění služby při bootování.system-control start mailcatcher.service
pro ruční spuštění služby.system-control status mailcatcher.service
zobrazíte stav služby.system-control preset mailcatcher.service
pro nastavení automatického spouštění služby při bootování, pokud je místní konfigurace (přednastavení ve stylu systemd nebo/etc/rc.conf{,.local}
) to umožňuje.
Ani nezačínejte se systémem 5 rc
soubory.
Podívejte se na tuto šablonu, kterou používá SaltStack pro System 5 rc
skripty. I když byla eliminována parametrizace SaltStack, to je 59 řádků kódu skriptu shellu, z nichž většina je obecný vzor, který byste museli znovu vymýšlet a přepisovat. Znovu. A Celada už poukázal na to, kde jsi to špatně vynalezl.
Soubor systemd unit má 11 řádků. Soubor počáteční úlohy má 8 řádků. Nosh run
script je 6. A všechny mechaniky start/stop/stav dělají za vás. Nezačínejte s System V rc
, zejména ne na Ubuntu Linux.
Další čtení
- Nastavení Mailcatcheru . 2014-10-21. Servery pro hackery. Fideloper LLC.
- James Hunt a Clint Byrum (2014). "Utility". Kuchařka pro začátečníky .
- Jonathan de Boyne Pollard (2014). Pohled vedle sebe na spouštěcí skripty a servisní jednotky. . Často uváděné odpovědi.