问题描述
我不知道从哪里开始寻找。我一直在阅读有关守护程序的内容,但并不了解该概念。
更多细节 :
-
我一直在写一个爬虫,它永远不会停止,并且不会通过Internet上的RSS爬虫。
-
搜寻器已经用Java编写-因此现在是一个jar。
-
我是拥有Ubuntu 11.04的计算机上的管理员。
-
机器有可能崩溃,所以我希望每次启动机器时都运行搜寻器。
-
此外,即使我注销,我也希望它能够继续运行。我不确定这是否可行,但是大多数时候我都注销了,但我仍然希望它继续爬网。
有任何想法吗?有人可以指出我正确的方向吗?
只是寻找最简单的解决方案。
最佳方法
这是使用SysVInit的一种简单方法。说明:
-
创建您的应用程序的开始和停止脚本。将其放在某个目录中,在我们的示例中是:
-
启动脚本:
/usr/local/bin/myapp-start.sh
-
停止脚本:
/usr/local/bin/myapp-stop.sh
每个人都将提供运行/停止该应用程序的说明。例如,
myapp-start.sh
内容可以很简单,如下所示:#!/bin/bash java -jar myapp.jar
对于停止脚本,可能是这样的:
#!/bin/bash # Grabs and kill a process from the pidlist that has the word myapp pid=`ps aux | grep myapp | awk '{print $2}'` kill -9 $pid
-
-
创建以下脚本(
myscript
)并将其放在/etc/init.d
上。/etc/init.d/myscript
内容:#!/bin/bash # MyApp # # description: bla bla case $1 in start) /bin/bash /usr/local/bin/myapp-start.sh ;; stop) /bin/bash /usr/local/bin/myapp-stop.sh ;; restart) /bin/bash /usr/local/bin/myapp-stop.sh /bin/bash /usr/local/bin/myapp-start.sh ;; esac exit 0
-
将脚本放入系统中(使用SysV)。只需运行以下命令(以root用户身份):
update-rc.d myscript defaults
PS:我知道Upstart非常好,但我还是喜欢旧的SysV初始化系统。
次佳方法
是!有可能的。 🙂 Upstart是确保服务保持运行的一种方式。它有五个软件包,默认情况下全部安装:
-
新贵的init守护程序和initctl实用程序
-
upstart-logd为日志服务提供logd守护程序和作业定义文件
-
upstart-compat-sysv提供rc任务以及重新启动,运行级别,关闭和telinit工具的作业定义文件,这些文件提供与SysVinit的兼容性
-
startup-tasks为系统启动任务提供作业定义文件
-
system-services提供tty服务的作业定义文件
学习非常愉快,值得。新贵有一个网站:http://upstart.ubuntu.com/