play 框架_用于Play框架分布式应用程序的Init.d Shell脚本
play 框架
我編寫了一個Shell腳本來控制使用內(nèi)置命令dist打包的Play框架應(yīng)用程序。 以這種方式打包的應(yīng)用程序是獨立的壓縮發(fā)行版,而無需在應(yīng)該運行的計算機上安裝Play框架。 所需的一切都在包裝內(nèi)。 在zip的bin目錄中,有一個可執(zhí)行的Shell腳本,其名稱與您的應(yīng)用程序相同。 您可以通過運行此腳本來啟動應(yīng)用程序。 這就是全部,但我想要更多。
腳本設(shè)置
從GitHub下載腳本并使其可執(zhí)行:
在運行腳本之前,您必須設(shè)置NAME , PORT和APP_DIR變量的值。
讓我們以我的輔助項目Jugjane為例。 我運行了“ play dist ”,它生成了“ jugjane-1.1-SNAPSHOT.zip ”文件。 如果將其解壓縮,則會得到一個名為“ jugjane-1.1-SNAPSHOT ”的目錄,該目錄將移至“ /home/rado/bin/jugjane-1.1-SNAPSHOT ”。 Play框架生成的shell腳本為“ /home/rado/bin/jugjane-1.1-SNAPSHOT/bin/jugjane ”。 我想在端口9000上運行該應(yīng)用程序。我的值是:
NAME=jugjane PORT=9000 APP_DIR=/home/rado/bin/jugjane-1.1-SNAPSHOT啟動,停止,重新啟動并檢查狀態(tài)
現(xiàn)在,我可以方便地將我的Pl??ay應(yīng)用程序作為守護程序運行。 讓我們運行它。
開始
要啟動我的Jugjane應(yīng)用程序,我只需運行以下命令:
$ ./dist-play-app-initd start Starting jugjane at port 9000... OK [PID=6564]重新開始
$ ./dist-play-app-initd restart Stopping jugjane... OK [PID=6564 stopped] Starting jugjane at port 9000... OK [PID=6677]狀態(tài)
$ ./dist-play-app-initd status Checking jugjane at port 9000... OK [PID=6677 running]停止
$ ./dist-play-app-initd stop Stopping jugjane... OK [PID=6677 stopped]機器啟動時啟動您的應(yīng)用程序
這取決于您的操作系統(tǒng),但是通常您需要將此腳本移至/etc/init.d目錄。
實施細節(jié)
該腳本使用Play框架生成的RUNNING_PID文件,其中包含應(yīng)用程序服務(wù)器進程的ID。
安全啟動
啟動應(yīng)用程序后,腳本將檢查是否已創(chuàng)建RUNNING_PID文件以及該進程是否真正在運行。 之后,它使用wget實用程序?qū)Ω臋n發(fā)出HTTP GET請求,以再次檢查服務(wù)器是否處于活動狀態(tài)。 當(dāng)然,這假定您的應(yīng)用程序提供了此文檔。 如果您不喜歡(或沒有)wget,那么我也提供了curl版本以方便您。
安全停車
停止檢查其ID在RUNNING_PID文件中的進程是否確實屬于您的應(yīng)用程序。 這是一項重要的檢查,因此我們不會意外殺死一個無辜的進程。 然后,它從最溫和的信號開始向過程發(fā)送終止信號,直到過程終止。
貢獻
我感謝我的雇主Dominion Marine Media,讓我與您分享這一喜悅。 隨時貢獻。
翻譯自: https://www.javacodegeeks.com/2014/03/init-d-shell-script-for-play-framework-distributed-applications.html
play 框架
總結(jié)
以上是生活随笔為你收集整理的play 框架_用于Play框架分布式应用程序的Init.d Shell脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 出家人不打诳语意思是什么 一起来了解一下
- 下一篇: J2Pay – API响应