시작 스크립트 : 네트워킹이 시작된 후 작업 실행 시스템의 ipv6 액세스 권한을

현재 서버 설정을 최신 하드웨어로 옮기고 우분투 카믹 코알라에서 자비 스라소니로 마이그레이션하고 있습니다. 현재 시스템의 ipv6 액세스 권한을 얻기 위해 gw6c (리포지토리의 버전이 아닌 gogo6 웹 사이트에서 컴파일 됨)를 사용하고 있습니다. karmic 코알라 시스템에서, 나는 간단한 init.d 스크립트를 사용하여 ipv6 클라이언트를 시작했습니다.

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

나는 이것이 모든 런레벨에서 실행되기 때문에

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

이것은 initctrl에서 시작하여 잘 작동하지만 부팅 할 때 분명히 시작되지 않습니다. -상태가 중지 / 대기 중입니다. 다른 곳에서 시작할 때 잘 작동하고 다시 나타납니다. 잘못 된 부분에 대한 아이디어와 적절한 ‘시작’인수는 무엇입니까?

편집 : 정확한 오류는 ‘init : gw6c 주 프로세스 (xxx)가 상태 8로 끝남’입니다. 그리고 프로세스 respawning이 발생합니다 .xxx는 PID로 의심됩니다. 나는 이것이 네트워킹 전에 gw6c가 시작되는 원인이라고 반으로 의심하고 있으며 gw6c가 있기 전에 eth0이 필요합니다.



답변

분명히

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

작동하는 것 같습니다


답변

gw6c를 시작하는 스크립트를

/etc/network/if-up.d

해당 폴더의 모든 스크립트는 인터페이스가 나타난 후에 실행됩니다. eth0이 나타날 때만 실행하려면 eth0 항목을 편집하십시오.

/etc/network/interfaces

스크립트에 대한 호출을 추가

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

또한 인터페이스가 오프라인 상태가되기 전에 터널을 종료하기 위해 프리 다운 스크립트를 추가하는 것이 좋습니다.

일단 그렇게하고 작동하는 구현을 찾으면 다시 사용할 수 있도록 다시 게시하십시오. 내 노트북에 gw6c가 있지만 자동화를 위해 게으르다.


답변

“Journeyman 괴짜”감사합니다 🙂 당신은 저를 많은 시간을 절약했습니다. 나는 /etc/init.d/gw6c 스크립트와 싸우면서 “sysv-rc-conf -p”로 몇 가지 타이밍을 시도하고 왜 작동하지 않는지 궁금합니다 (일명 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

약간 수정 된 ( “runlevel”및 exec 명령) 스크립트가 작업을 수행했습니다! 🙂 🙂 🙂


답변

여기에서 :
http://upstart.ubuntu.com/cookbook/#single-job-instance-running-without-pid

description     "Uncomplicated firewall"

# Make sure we start before an interface receives traffic
start on (starting network-interface
          or starting network-manager
          or starting networking)

stop on runlevel [!023456]

console output

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


답변