新贵脚本:网络启动后运行任务


23

我正在努力将当前的服务器设置迁移到较新的硬件,并从ubuntu karmic考拉迁移到lucid lynx。目前,我正在使用gw6c(从gogo6网站编译,而不是来自存储库的版本)来获取我系统的ipv6访问权限。在业力考拉系统上,我使用了简单的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开始正常运行,但是启动时显然无法启动。-其状态为停止/等待。否则,它可以很好地工作(并重新生成)。关于我要去哪里的任何想法以及合适的“开始”论点是什么?

编辑:确切的错误是“初始化:gw6c主进程(xxx)以状态8结束”,然后重新生成进程,其中xxx是我怀疑的PID。我也有一半怀疑这是因为gw6c在网络启动之前就启动了,我需要在eth0上启动gw6c

Answers:


27

显然地

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

似乎有效


是的,我最近写了一些使用net-device-up和net-device-down的程序,它们工作得很好。
安迪·谢拉姆

我没有在文档中的任何地方找到它。本地邮件列表中的某人帮助了我
Journeyman Geek

这正是我想要的。我找不到的任何地方都没有在新贵文档中找到它。
内森2012年

4

将启动gw6c的脚本放入

/etc/network/if-up.d

界面出现后,该文件夹中的所有脚本都将运行。如果只希望它在eth0出现时运行,请在eth0中编辑eth0条目。

/etc/network/interfaces

并添加对脚本的调用

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

我还建议添加pre-down脚本以在接口脱机之前关闭隧道。

完成此操作并找到可行的实现后,将其发布回此处,以便我可以使用它。我的笔记本电脑上装有gw6c,但到目前为止我还懒得去自动化它。


我发布的前一个脚本运行良好-尽管我需要手动重新启动它,如果我的连接自行重置-这是针对新贵的,这在lucid lynx上是默认设置。
Journeyman Geek

1

谢谢“ The Journeyman geek” :)您节省了我很多时间。我正在使用/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

稍微修改(“运行级别”和exec命令)脚本即可完成工作!:) :) :)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.