歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 注冊程序為Linux系統服務並設置成自啟動

注冊程序為Linux系統服務並設置成自啟動

日期:2017/2/28 15:53:13   编辑:Linux教程

這裡以Red Hat linux 為例, 設置某個JAVA程序為系統服務, 通過service命令進行管理, 並跟隨系統自行啟動.

1. 先將自己的程序寫入SH腳本, 便於管理.

如: java -server -cp .:./lib/* com.test.Startup

2. 進入/etc/init.d目錄, 新建文件, 以自己的程序命名, 如: erp

內容如下:

  1. #!/bin/sh
  2. # chkconfig: 35 99 1
  3. #
  4. # description: ERP service
  5. #
  6. ERP_HOME=/data/falconprobuf
  7. RETVAL=0
  8. ERP_PORT=8099
  9. # start and stop functions
  10. start() {
  11. pids=`netstat -lnp | grep $ERP_PORT |awk '{print $7 }'`
  12. pids=${pids%/*}
  13. if [ -n "$pids" ]; then
  14. echo "ERP SERVICE ALREADY START "
  15. else
  16. echo "START ERP SERVICE "
  17. cd $ERP_HOME
  18. ./startup.sh &
  19. echo
  20. fi
  21. }
  22. stop() {
  23. pids=`netstat -lnp | grep $ERP_PORT |awk '{print $7 }'`
  24. pids=${pids%/*}
  25. if [ -n "$pids" ]; then
  26. echo "STOP ERP SERVICE "
  27. kill -9 $pids
  28. echo "STOP ERP SUCCESS "
  29. else
  30. echo "ERP SERVICE ALREADY STOP "
  31. fi
  32. }
  33. # See how we were called.
  34. case "$1" in
  35. start)
  36. start
  37. ;;
  38. stop)
  39. stop
  40. ;;
  41. restart)
  42. stop
  43. sleep 2
  44. start
  45. ;;
  46. *)
  47. echo "Usage: $0 {start|stop|restart}"
  48. exit 1
  49. esac

① 注意第二行: # chkconfig: 35 99 1
這個需要加上, 因為後面要設置成自啟動方式.
② ./startup.sh &

加上&, 掛入後台運行, 不會影響當前的連接會話.

這裡沒有使用全路徑, 因為執行腳本裡面使用了相對路徑, 會找不到相應的JAR包,

解決辦法是先跳入目錄, cd $ERP_HOME, 再執行腳本.

③ERP_PORT=8099
設置端口, 通過端口過濾的方式來結束程序, 會更為准確, 不會干擾其他的程序運行.

3. 確認服務文件的執行權限, 執行chmod +x erp 不需重啟, 這時可通過SERVCE start|stop|restart 方式進行服務管理.

最後執行chkconfig --add erp 列入運行服務, 完成配置.

Copyright © Linux教程網 All Rights Reserved