方式一、二、三適用於ubuntu,centos推薦使用方式二、方式三
方式一
在ubuntu系統中,如果你使用的apt方式安裝的軟體,可以使用如下方式直接新增服務的開機自啟,
如果你是手動解壓縮官網下載的安裝包安裝的建議使用方式二、方式三。
直接使用apt進行的軟體安裝,一般情況下系統會預設生成開機自啟的指令碼檔案,你只需要執行固定的命令,即可進行服務的開機自啟。
mysql的開機自啟
sudo update-rc.d mysql default
nginx的開機自啟
sudo update-rc.d nginx default
其他軟體的服務自啟同理。
如需移除軟體的服務自啟
sudo update-rc.d -f '移除的軟體' remove
方式二
簡稱為service方式
下面以自啟mongo服務為例
1.建立指令碼
sudo touch /etc/systemd/system/mongodb.service
修改檔案許可權:
sudo chmod 777 /etc/systemd/system/mongodb.service
2.在檔案中新增下面內容
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
注意修改你的mongo安裝目錄及配置檔案路徑
儲存退出
3.使用命令,開機自啟
sudo systemctl enable mongodb
sudo systemctl start mongodb # 啟動mongo
sudo systemctl status mongodb # 檢視mongo狀態
方式三
簡稱init.d方式
cd /etc/init.d
touch mongodb
chmod 777 /etc/init.d/mongodb
update-rc.d mongodb defaults
指令碼內容:
#!/bin/sh
### BEGIN INIT INFO
# Provides: mongodb
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: mongodb
# Description: mongo db server
### END INIT INFO
EXE_FILE=/home/mongo/mongodb-linux-aarch64-ubuntu1804-4.2.20/bin
CONFIG_FILE=/data/MongoDB/mongodb.conf
. /lib/lsb/init-functions
MONGOPID=`ps -ef| grep mongod| grep -v grep| awk '{print $2}'`
test -x $EXE_FILE || exit 0
case "$1" in
start)
ulimit -n 3000
log_begin_msg "Starting MongoDB server"
$EXE_FILE --config $CONFIG_FILE
log_end_msg 0
;;
stop)
log_begin_msg "Stopping MongoDB server"
if [ ! -z "$MONGOPID" ]; then
kill -15 $MONGOPID
fi
log_end_msg 0
;;
status)
ps -aux| grep mongod
;;
*)
log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
exit 1
esac
exit 0
注意修改
EXE_FILE=/home/mongo/mongodb-linux-aarch64-ubuntu1804-4.2.20/bin
CONFIG_FILE=/data/MongoDB/mongodb.conf
換成你自己的目錄位置
專案jar包的服務自啟
這種方式,可以控制你服務的啟動順序
1.在/etc/init.d目錄下先建立指令碼檔案,如super.sh
2.在指令碼檔案中新增以下內容
#!/bin/sh
### BEGIN INIT INFO
# Provides: autoJar.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
# 防止jdk載入慢
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export PATH=${JAVA_HOME}/bin:$PATH
cd /usr/local/install/
nohup java -jar super-1.0-SNAPSHOT.jar > nohup.out 2>&1 &
3.增加檔案許可權
sudo chmod 777 /etc/init.d/super.sh
4.將指令碼使用命令新增到啟動指令碼中去
cd /etc/init.d
sudo update-rc.d -f super.sh defaults 50
5.移除啟動指令碼
cd /etc/init.d
sudo update-rc.d -f wgkq.sh remove