背景
Linux在windows虚拟出来的机器,因为Windows更新或者断电等问题,需要频繁重启
Systemctl 自启
systemctl 自带服务
# prometheus可以替换成自己想要自启的服务
systemctl enable prometheus
添加到systemctl服务中
加入系统服务
添加文件名.service的文件
vim /usr/lib/systemd/system/node_exporter.service
[Service]
# 修改目录
ExecStart=/你本地之前下载node的位置/node_exporter --web.listen-address=0.0.0.0:9100
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
[Unit]
# 简单修改对应描述
Description=node_exporter
After=network.target
更新系统配置
systemctl daemon-reload
设置开机自启
systemctl enable node_exporter.service
服务管理
#启动
systemctl start node_exporter.service
#停止
systemctl stop node_exporter.service
#重启
systemctl restart node_exporter.service
编写脚本自启
以jenkins为例,创建一个jenkins.sh文件
#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限
JAVA_HOME=/opt/jdk
pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
if [ "$1" = "start" ];then
if [ $pid -gt 0 ];then
echo 'jenkins is running...'
else
## java启动服务 配置java安装根路径,和启动war包存的根路径,这两个路径根据自己实际放的位置更改
nohup $JAVA_HOME/bin/java -jar /opt/jenkins/jenkins.war --httpPort=8080 > system.log 2>&1 &
fi
elif [ "$1" = "stop" ];then
exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
echo 'jenkins is stop..'
else
echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
fi
系统自启动文件
编辑自启动文件(记得给该文件运行的权限)
vim /etc/rc.d/rc.local
启动文件配置
#jenkins 文件目录加启动命令
/opt/jenkins/jenkins.sh start