ubuntu下如何让play的应用开机自动启动?

发布于 2021-11-09 21:28:05 字数 50 浏览 936 评论 7

ubuntu下如何让play的应用开机自动启动? 

请教各位

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

猫烠⑼条掵仅有一顆心 2021-11-14 11:59:42

下面是安装这个自动启动脚本的脚本 命名 install_myapp

update-rc.d -f myapp remove

cp myapp /etc/init.d/
chmod +x /etc/init.d/myapp
update-rc.d myapp defaults 98 8

sleep 100

update-rc.d -f myapp remove

是删除/etc/init.d/myapp 的所有符号链接,删除之后就不会自动启动了。

update-rc.d myapp defaults 98 8

的意思是 把 myapp这个启动脚本的启动顺序设置成 98. 关闭顺序(ubuntu系统关闭时的顺序)为8

根据各系统不同可以修改值。 查看/etc/rc0.d 到 /etc/rc6.d

看里面的 SnnXXXX 和 KnnXXX 这样的文件,合理安排启动顺序。顺序值越大,越靠后。

因为我的系统中 mysql的启动顺序位85, lighttpd的启动顺序为91,关闭顺序为09,

我要保证play在mysql和lighttpd后启动, 在 lighttpd前关闭,

所以设置 98 8

执行这个脚本,重启,则play能自动启动。

 

要测试 myapp 脚本是否可用,

运行 /etc/init.d/myapp start

/etc/init.d/myapp restart

/etc/init.d/myapp stop

可以测试

路还长,别太狂 2021-11-14 11:50:27

已经搞定了,分享一下。 这是 LSB 运行脚本, 脚本命名 myapp

#! /bin/sh

# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: myapp
# Required-Start: $local_fs $network $remote_fs
# Required-Stop:  $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop myappservice
# Description: myappservice is myapp server
### END INIT INFO

JAVA_HOME=/myappsys/jdk/jdk1.6.0_24
JRE_HOME=/myappsys/jdk/jdk1.6.0_24/jre
CLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH"
PATH="$JAVA_HOME/bin:$JRE_HOME/bin:/myappsys/mysql/mysql/bin:$PATH"

. /lib/lsb/init-functions

case "$1" in
        start)              
              rm /myappsys/myappservice/myapp/server.pid
              /myappsys/play/play-1.1.1/play start /myappsys/myappservice/myapp
              touch /myappsys/play/myapp_start_2222222
              ;;
        stop)
              /myappsys/play/play-1.1.1/play stop /myappsys/myappservice/myapp
              rm /myappsys/myappservice/myapp/server.pid
              touch /myappsys/play/myapp_stop_2222222
              ;;
       restart|force-reload)              
              /myappsys/play/play-1.1.1/play stop /myappsys/myappservice/myapp
              rm /myappsys/myappservice/myapp/server.pid
              /myappsys/play/play-1.1.1/play start /myappsys/myappservice/myapp
              touch /myappsys/play/myapp_restart_22222
              ;;
       *)
              echo "Usage: /etc/init.d/myapp {start|stop|restart|force-reload}"
	      exit 1
	      ;;
esac

exit 0

注意### BEGIN INIT INFO 和 ### END INIT INFO 部分 不能删除,不是单纯注释,是系统识启动时识别用到的。

脚本中的 myapp 和java home等目录替换成你的应用即可

rm *****.pid 语句应该可以删除,留在那里是为了防止play非法关闭,还留有pid文件,start命令不能正常启动的情况。

touch语句是为了测试看是否执行,可删除。

蓝颜夕 2021-11-14 11:48:05

引用来自#6楼“gtd”的帖子

非常感谢楼上的朋友! 不过这个是reahat系的,不能用于ubuntu吧

奢望 2021-11-14 10:05:01

非常感谢楼上的朋友! 不过这个是reahat系的,不能用于ubuntu吧

皇甫轩 2021-11-14 09:42:20

 

参考httpd,cups等服务写linux标准的lsb脚本(Init 脚本)吧 然后通过chkconfig加入开/关机列表 即可

mysql 的启动、关闭顺序较高,会优先启动和关闭,不用担心

感情旳空白 2021-11-10 04:35:07

有命令,例如 /mydir/play/play run myapp

但是我看mysql等自动启动脚本没这么简单。我们的应用还需要让play的启动顺序在mysql之后。

另外服务器关机的时候要自动带上停止服务的处理。

请有play经验的爱好者说说部署的经验。谢谢

请play

如日中天 2021-11-09 23:37:21

什么叫play的应用啊?有启动命令吗?如果有的话,可以放在 /etc/init.d下面的启动脚本中,linux都这样的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文