Linux远程启动/停止过程

时间:2012-01-13 12:57:27

标签: linux service

我们希望在Linux机器上运行应用程序作为服务/ Deamon而无需手动登录并启动它。该应用程序是一个Java,我们从shell(.sh)开始。

您是否知道如何在Linux发行版上作为服务/守护进程运行而无需登录,手动启动和停止?

3 个答案:

答案 0 :(得分:2)

在启动时运行命令

您需要在/etc/rc.local上添加要运行的命令。

注意:该路径可能依赖于您的发行版或初始化系统,因此请查看发行版文档以确保(即它可能是/etc/init.d/local或类似内容)。

通常会

  • 使该文件可执行 - chmod +x /etc/rc.local
  • 并在内容中追加/添加将启动应用程序的命令

    $ echo "sh myscript.sh &" >> /etc/rc.local # or just edit with your prefered editor
    

同样,根据您的发行版和初始化系统,您可能需要将文件作为服务添加到默认运行级别(或相应的运行级别)

sudo update-rc.d local defaults 80  # ie for ubuntu

查看this howto的Ubuntu, 或look here为Archlinux, 或here代表Gentoo


远程部分?

远程部分有很多麻烦。你是什​​么意思远程?是否在Lan中运行守护程序的计算机?你相信你的局域网吗?它是否与互联网通信?等等

我可能会在该计算机上设置ssh,并且在需要时,我会登录并启动/停止该守护程序。您只需设置sshd(通常为/etc/ssh/sshd_config)并添加ssh即可在启动时运行。
如果机器在本地Lan上,并且您认为登录并手动启动/停止守护程序太无聊并且想要更自动化的东西,我可能会编写一个机器人来解析特定用户的邮箱并在收到时对于“特殊”邮件,它会启动或停止或切换守护程序的状态(注意它必须具有适当的权限)。这听起来很简单,但你需要信任你的局域网或者小心你如何解析邮件(邮件欺骗等)。

答案 1 :(得分:1)

假设 我假设您的意思是如何让Java服务在不同的运行级别启动和停止。

看一下Java Service Wrapper它是一个应用程序,它是出于解决许多Java应用程序常见的许多问题而发展起来的。 Wrapper的功能如下:

  • 将Java应用程序作为Windows服务或UNIX守护程序运行
  • Java应用程序可靠性
  • 标准,开箱即用脚本
  • 按需重启
  • 灵活配置
  • 简化应用程序安装
  • 登录

上面的spiel来自网站,但我已经广泛使用它并且非常出色。我不能推荐它。

答案 2 :(得分:1)

除了其他答案,您还可以使用@reboot crontab(5)条目

在Debian或Ubuntu上,您可以通过将/etc/init.d/skeleton复制到/etc/init.d/iccubedaemon(以及编辑该文件中)来创建自己的服务脚本,然后将其符号化为{{1等等......