以前寫過一篇windows下的自啟服務(wù)設(shè)置:windows下Tomcat指定jdk并部署到系統(tǒng)服務(wù)設(shè)置開機啟動丧叽,在ubuntu下可以利用systemctl實現(xiàn)開機自啟服務(wù)
編寫服務(wù)service文件(以test.service)為例
新建test.service
[Unit]
Description=My Test App
After=syslog.target
[Service]
#ExecStart=mkdir /home/zhaohy/Desktop/test
ExecStart=/home/zhaohy/myspace/shell/sh/test.sh
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
ExecStart表示服務(wù)執(zhí)行的命令婚被,可以直接是shell命令也可以是shell腳本绪励,這里以shell腳本為例
新建/home/zhaohy/myspace/shell/sh/test.sh
#!/bin/bash
mkdir /home/zhaohy/Desktop/test
cd /home/zhaohy/Desktop/test
touch test.md
echo 'hello world!' >> test.md
上面簡單的在桌面新建了一個test文件夾陕悬,文件夾里面新建一個test.md灌诅,然后test.md里面追加輸出了hello world字符串。
新建好了之后在終端運行:
systemctl enable /home/zhaohy/myspace/shell/test.service
終端出輸出以下文字
Created symlink /etc/systemd/system/multi-user.target.wants/test.service → /home/zhaohy/myspace/shell/test.service.
Created symlink /etc/systemd/system/test.service → /home/zhaohy/myspace/shell/test.service.
可以看到實際上是做了軟鏈接
這樣就能開機自啟動了单刁。
立即啟動命令:systemctl start test.service
立即結(jié)束命令:systemctl stop test.service
查看服務(wù)狀態(tài):systemctl status test.service
查看服務(wù)是否在運行中:systemctl is-active test.service
移除開機自啟:systemctl disable test.service
(刪除軟連接)
如果是想啟動java服務(wù)的話灸异,只需要更改service文件:
#!/bin/bash
java -jar xxx.jar &
然后systemctl daemon-reload test.service
重新載入一下即可生效
利用這個也可以做到開機自動備份等,也可以借助java程序定時跑什么任務(wù),比如定時備份home目錄绎狭,也是可以做的细溅。