【问题标题】:How to write init script如何编写初始化脚本
【发布时间】:2012-06-04 09:45:18
【问题描述】:

您好,我使用的是 64 位 Fedora 10 linux。我创建了一个示例 java 应用程序。现在我想为该应用程序编写初始化脚本。这样我的应用程序应该在启动时启动。

如何编写启动脚本以在启动时启动。

谢谢 苏尼尔·库马尔·萨胡

【问题讨论】:

    标签: java linux fedora


    【解决方案1】:

    这里有一个很好的指南:

    http://www.novell.com/coolsolutions/feature/15380.html
    

    我建议看一下tomcat startup.shshutdown.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

    【讨论】:

    • 这是一个很好的开始(双关语),但它缺少 LSB 标头,更重要的是,缺少一个有效的“状态”选项。
    【解决方案2】:

    我通常只从 /etc/init.d 中取出一个较小的初始化脚本并对其进行修改。

    编辑

    最简单的事情就是将你的程序添加到 /etc/rc.local 文件中。这将是最后执行的启动脚本。您不必搞乱“开始”和“停止”的东西。

    但是,如果您对能够随意启动和停止程序感兴趣,则需要编写一个脚本。

    这里的一些其他答案将帮助您入门。

    【讨论】:

    • 嗨,巴里,你能告诉我我要修改哪个脚本文件吗?我不知道哪个更小。
    • 公平地说,从 rc.local 运行东西对于超出您自己的本地“现在就让它工作”的需求之外的任何东西都不仅仅是一个有点 hacky 和非常糟糕的形式。如果你打算将它分发到任何东西(包括测试或生产环境),你真的应该有一个 init 脚本。
    • 你是 100% 正确的。但是 OP 没有说明他的应用是供他自己使用还是他将要分发的东西。
    【解决方案3】:

    许多发行版都带有一个框架脚本,您可以将其用作您自己的初始化脚本的模板,在/etc/init.d/skeleton/etc/init.d/skel 中。

    【讨论】:

    • 这些通常只适用于分叉的应用程序。 Java 通常不会分叉。
    【解决方案4】:

    我见过的一些最好的 Java 应用程序倾向于使用 tanuki wrapper

    它标准化了跨不同操作系统的启动脚本,即可用于配置 *nix 守护程序或 Windows 服务。

    它提供了一个标准的命令行界面,用于停止、启动、重新启动和检查状态 - 运行与否。

    我很高兴看到它被越来越多地使用,因为我不必再次学习它,学习一次并一次又一次地重复使用它。

    通过使用此服务库,您的应用程序可以从未来的增强功能中受益。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 2015-01-03
      • 2021-05-06
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多