怀远西 2017-05-26 3746浏览量
具体流程
[Unit]
#定义描述
Description=The Apache HTTP Server
#指定了在systemd在执行完那些target之后再启动该服务
After=network.target remote-fs.target nss-lookup.target
[Service]
#定义Service 的运行type,一般是forking,就是后台运行
Type=notify
Environment=LANG=C
#以下定义systemctl start |stop |reload *.service 的每个执行方法,具体命令#需要写绝对路径
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
#创建私有的内存临时空间
PrivateTmp=true
[Install]
WantedBy=multi-user.target
以下是我自己写的一个java项目,需要他开机自运行的service,systemd会帮我执行我写脚本,shell如下,仅供参考
#!/bin/bash
CMD=$1
case $CMD in
-start)
nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
;;
-stop)
port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
sudo kill $port
;;
-restart)
port=$(sudo netstat -tnlp | grep ':9099' |awk '{print $nf}' |awk -f'/' '{print $1}')
sudo kill $port
nohup java -jar /home/mobileoa/apps/shMediaManage-0.0.1.jar &> /home/mobileoa/apps/shm.log &
;;
*)
echo "Usage: shMediaManager.sh -start | -stop | -restart .Or use systemctl start | stop | restart MediaManager.service "
;;
esac
编辑.service文件,在Exec*下执行脚本,来启动关闭重启服务
[UNIT]
Description=Media wanager Service
After=network.target
[Service]
Type=forking
**ExecStart=/home/mobileoa/apps/shMediaManager.sh -start
ExecReload=/home/mobileoa/apps/shMediaManager.sh -restart
ExecStop=/home/mobileoa/apps/shMediaManager.sh -stop**
PrivateTmp=True
[Install]
WantedBy=multi-user.target
设置开机自起
systemctl enable MediaManager.service
会创建一个连接
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
集结各类场景实战经验,助你开发运维畅行无忧