您好我使用的是64位Fedora 10 linux。我已经创建了一个示例java应用程序。现在我想为该应用程序编写init脚本。所以我的应用程序应该在启动时启动。
如何编写init脚本以在启动时启动。
由于 Sunil Kumar Sahoo
答案 0 :(得分:5)
这里有很好的指南:
http://www.novell.com/coolsolutions/feature/15380.html
我建议您查看tomcat startup.sh 和 shutdown.sh 脚本,然后修改the following init.d script:
#!/bin/bash
#
# tomcat
#
# chkconfig:
# description: Start up the Tomcat servlet engine.
# Source function library.
. /etc/init.d/functions
RETVAL=$?
CATALINA_HOME="/usr/apps/apache/tomcat/jakarta-tomcat-4.0.4"
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su tomcat $CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su tomcat $CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
上面的脚本缺少很多东西,使它完全符合Linux Standard Base。您可能希望从发行版复制现有的init.d脚本。可以在此处找到稍微好一点的脚本:http://blog.valotas.com/2011/05/tomcat-initd-script.html
答案 1 :(得分:5)
我通常只从/etc/init.d获取一个较小的init脚本并修改它。
最简单的要做的就是将程序添加到/etc/rc.local文件中。这将是最后一个启动脚本执行。你不必乱用“开始”和“停止”的东西。
但是,如果您对能够随意启动和停止程序感兴趣,则需要编写脚本。
这里的其他一些答案将帮助您入门。
答案 2 :(得分:4)
许多发行版附带了一个框架脚本,您可以在/etc/init.d/skeleton
或/etc/init.d/skel
中将其用作自己的初始化脚本的模板。
答案 3 :(得分:3)
我见过的一些最好的java应用程序倾向于使用tanuki wrapper来实现此目的。
它标准化不同操作系统的启动脚本,即可用于配置* nix守护程序或Windows服务。
它提供了一个标准的命令行界面,用于停止,启动,重新启动和检查状态 - 运行与否。
我很欣赏它的使用越来越多,因为我不需要再学习它,学习一次并重复使用它。
通过使用此服务库,您的应用程序可以从未来的增强功能中受益。