????????本文以設(shè)置spark-test.jar的服務(wù)和開機(jī)啟動(dòng)為例族操,操作系統(tǒng)為Centos7交胚。centos7之前不能使用該方式际邻。
第一步顶岸,編寫jar的啟動(dòng)腳本spark-test-start.sh
#!/bin/sh
source /etc/profile
nohup java -jar /data/sparkdemo/target/spark-test.jar &
echo $! > /var/run/spark-test-service.pid
注意加載環(huán)境變量腔彰,否則可能出現(xiàn)找不到j(luò)ava命令。并給腳本授予可以執(zhí)行的權(quán)限辖佣,chmod +x spark-test-start.sh
第二步霹抛,編寫jar的停止腳本spark-test-stop.sh,并給腳本授予可執(zhí)行權(quán)限,chmod +x spark-test-stop.sh卷谈,腳本內(nèi)容如下杯拐。
#!/bin/sh
PID=$(cat /var/run/spark-test-service.pid)
kill -9 $PID
第三步,編寫systemd service服務(wù)腳本spark-test-service.service
#!/bin/sh
[Unit]
Description=spark-test-service? #自定義服務(wù)的描述
After=syslog.target network.target remote-fs.target nss-lookup.target #依賴這些服務(wù)先啟動(dòng)后世蔗,自定義服務(wù)才啟動(dòng)
[Service]
Type=forking? #ExecStart字段將以fork()方式啟動(dòng)端逼,此時(shí)父進(jìn)程將會(huì)退出,子進(jìn)程將成為主進(jìn)程污淋。
ExecStart=/data/sparkdemo/target/spark-test-start.sh #服務(wù)啟動(dòng)運(yùn)行的腳本
ExecStop=/data/sparkdemo/target/spark-test-stop.sh #服務(wù)停止運(yùn)行的腳本
PrivateTmp=true
[Install]
WantedBy=multi-user.target #定義如何安裝這個(gè)配置文件顶滩,即怎樣做到開機(jī)啟動(dòng)。
第四步寸爆,將spark-test-service.service 復(fù)制到/usr/lib/systemd/system/spark-test-service.service 目錄中诲祸,并賦予可執(zhí)行權(quán)限,chmod +x spark-test-service.service 而昨。至此救氯,服務(wù)配置完畢。
第五步歌憨,運(yùn)行服務(wù)的常用命令着憨。
啟動(dòng)服務(wù):systemctl start spark-test-service.service
停止服務(wù):systemctl stop spark-test-service.service
重啟服務(wù):systemctl restart spark-test-service.service
查看服務(wù):systemctl status spark-test-service.service
加入開機(jī)啟動(dòng):systemctl enable spark-test-service.service
禁止開機(jī)啟動(dòng):systemctl disable spark-test-service.servie
重載服務(wù):systemctl reload spark-test-service.service
對(duì)systemd service的配置項(xiàng)說明:可以參考博客https://www.cnblogs.com/yanwanglol/p/10029619.html