script kaya baru: menjalankan tugas setelah jaringan naik


23

Saya sedang bekerja untuk memindahkan pengaturan server saya saat ini ke perangkat keras yang lebih baru, dan bermigrasi dari ubuntu karmic koala ke lynx lucx. Saat ini saya menggunakan gw6c (dikompilasi dari situs gogo6, bukan versi dari repositori) untuk mendapatkan akses ipv6 untuk sistem saya. Pada sistem koala karma, saya menggunakan skrip init.d sederhana untuk memulai klien ipv6

 #! /bin/sh
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf

Saya pikir karena ini berjalan di runlevel apa pun, itu harus diterjemahkan

respawn
console none

start on startup

stop on shutdown

script
exec /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
emit free6_ipv6_started
end script

ini berfungsi dengan baik dimulai dari initctrl, tetapi tampaknya gagal untuk memulai ketika boot. - statusnya makhluk berhenti / menunggu. Ini bekerja dengan baik (dan respawn) ketika memulai sebaliknya. Setiap ide tentang di mana saya salah, dan apa yang akan menjadi argumen 'mulai pada' yang sesuai?

EDIT: kesalahan yang sebenarnya adalah 'init: gw6c proses utama (xxx) berakhir dengan status 8' diikuti oleh proses respawning, dengan xxx menjadi PID saya curiga. Saya juga setengah curiga ini menyebabkan gw6c mulai sebelum jaringan, dan saya perlu eth0 saya sebelum gw6c adalah

Jawaban:


27

Tampaknya

respawn
console none

start on (local-filesystems and net-device-up IFACE!=lo)
stop on [!12345]

script
chdir /usr/local/gw6c/bin/

exec /usr/local/gw6c/bin/gw6c 
end script

tampaknya bekerja


Ya saya baru saja menulis beberapa yang menggunakan net-device-up dan net-device-down yang bekerja dengan sempurna.
Andy Shellam

saya tidak menemukannya di mana pun dalam dokumentasi. seseorang di sebuah mailing list lokal membantu saya keluar
pekerja harian Geek

Ini persis apa yang saya cari. Masih belum ada dalam dokumentasi pemula yang dapat saya temukan.
Nathan

4

Tempatkan skrip mulai gw6c di

/etc/network/if-up.d

Semua skrip di folder itu dijalankan setelah antarmuka muncul. Jika Anda hanya ingin menjalankannya ketika eth0 muncul kemudian edit entri eth0 di

/etc/network/interfaces

dan tambahkan panggilan ke skrip

iface eth0 inet dhcp
  up /etc/init.d/gw6c restart

Saya juga menyarankan menambahkan skrip pra-turun untuk mematikan terowongan sebelum antarmuka menjadi offline.

Setelah Anda melakukan itu dan menemukan implementasi yang berhasil, kirim kembali ke sini agar saya dapat menggunakannya. Saya punya gw6c di laptop saya tapi sejauh ini saya malas mengotomasinya.


Skrip yang saya posting sebelumnya berfungsi dengan baik - meskipun saya harus me-restart secara manual, jika koneksi saya reset sendiri - ini untuk pemula, yang merupakan default pada lynx lynx.
Journeyman Geek

1

Terima kasih "The Journeyman geek" :) Anda menghemat banyak waktu. Saya berkelahi dengan skrip /etc/init.d/gw6c, mencoba beberapa pengaturan waktu dengan "sysv-rc-conf -p" dan bertanya-tanya mengapa itu tidak berfungsi (alias WTF?).

respawn
console none

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

script

exec /etc/init.d/gw6c start
end script

Script yang sedikit dimodifikasi ("runlevel" dan exec) berhasil! :) :) :)


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.