Czy uruchomić usługę po zakończeniu pracy w sieci na Ubuntu?

6

Usiłuję uruchomić usługę, która zależy od uruchomienia sieci za każdym razem, gdy komputer jest restartowany. Mam parę pytań:

  1. Czy jest to łatwo możliwe ze skryptu /etc/init.d? Próbowałem tutaj utworzyć skrypt (zgodny ze standardami), ale naprawdę wątpię, aby działał on nawet przy starcie systemu, a co dopiero działał. Kiedy testuję to ręcznie, działa.

  2. Widziałem nową usługę Upstart, ale jeśli chodzi o to, jak to naprawdę działa, jestem całkowicie w ciemności.

Jak mogę utworzyć skrypt uruchamiany przy rozruchu, który uruchamia się po uruchomieniu sieci? Gdybym mógł uruchomić go po podłączeniu do sieci bezprzewodowej, jeszcze lepiej :)

Naftuli Kay
źródło

Odpowiedzi:

6

Możesz używać plików /etc/initjako modeli. Na przykład jest to /etc/init/mountall-net.conf:

# mountall-net - Mount network filesystems
#
# Send mountall the USR1 signal to inform it to try network filesystems
# again.

description     "Mount network filesystems"

start on net-device-up

task

script
    PID=$(status mountall 2>/dev/null | sed -e '/,/{s/.*,[^0-9]*//;q};d')
    [ -n "$PID" ] && kill -USR1 $PID || true
end script

a to jest „/ etc / init / ufw.conf”:

# ufw - Uncomplicated Firewall
#
# The Uncomplicated Firewall is a front-end for iptables, to make managing a
# Netfilter firewall easier.

description     "Uncomplicated firewall"

start on net-device-added INTERFACE=lo
stop on runlevel [!023456]

console output

pre-start exec /lib/ufw/ufw-init start quiet
post-stop exec /lib/ufw/ufw-init stop

Ten ostatni plik ma dowiązanie symboliczne w /etc/init.d:

$ ls -l /etc/init.d/ufw
lrwxrwxrwx 1 root root 21 2009-11-05 00:14 /etc/init.d/ufw -> /lib/init/upstart-job
Dennis Williamson
źródło
Czy powinienem zacząć od net-device-upwłączenia net-device-added? Używam tego skryptu, aby uruchomić serwer DLNA obsługujący od nowa wlan0. Dzięki za wskazówkę, muszę znaleźć dobry przewodnik na temat wszystkich opcji dostępnych dla Upstart, wydaje się, że to lata przed systemem v.
Naftuli Kay
1
@TKKocheran: Ponieważ prawdopodobnie potrzebujesz komunikacji, aby być dostępnym, net-device-upprawdopodobnie byłaby to właściwa droga. Oto odniesienie . Spójrz szczególnie na wiki.
Dennis Williamson