一、開(kāi)機(jī)自啟.sh文件
1.創(chuàng)建.sh文件, 路徑可以自行選擇
sudo touch /opt/sh_files/mysh01.sh
2.賦予可執(zhí)行權(quán)限
sudo chmod a+x /opt/sh_files/mysh01.sh
3.輸入內(nèi)容到.sh文件中
注意:腳本文件的第一行應(yīng)該是shebang,指定了執(zhí)行該腳本的解釋器。例如,如果是一個(gè)bash腳本,它應(yīng)該是 #!/bin/bash
vim /opt/sh_files/mysh01.sh
樣本內(nèi)容:
#!/bin/bash
# 會(huì)議室服務(wù)
cd /opt/django_projects/dj_project
source ../vc/bin/activate
uwsgi --ini /opt/django_projects/dj_project/uwsgi.ini &
保存退出
4.創(chuàng)建.service文件在 /etc/systemd/system 目錄下
sudo nano /etc/systemd/system/myscript01.service
?上述命名會(huì)創(chuàng)建并打開(kāi)一個(gè)文本編輯器,往里面輸入以下內(nèi)容:
[Unit]
Description=My Custom Script
After=network.target
[Service]
ExecStart=/opt/sh_files/mysh01.sh
Restart=on-failure
User=root
Group=root
[Install]
WantedBy=multi-user.target
注意:將ExecStart替換成自己創(chuàng)建的.sh絕對(duì)路徑,User和Group換成創(chuàng)建.sh文件的用戶(hù)和組(可以用 ll /opt/sh_files/mysh01.sh 或者 ls -l /your/path/01.sh 進(jìn)行查看)
5.重新加載systemd
sudo systemctl daemon-reload
6.啟用并啟動(dòng)服務(wù)
sudo systemctl enable myscript01.service
禁用就把 enable --> disable
可以立即啟動(dòng)服務(wù)以測(cè)試它是否按預(yù)期工作
sudo systemctl start myscript01.service
7.檢查服狀態(tài)
sudo systemctl status myscript01.service
如果狀態(tài)中 Active: failed 表示失敗,檢查對(duì)應(yīng)文件或上述步驟是否執(zhí)行成功
如果狀態(tài)中 Active: deactivating ,表示服務(wù)當(dāng)前處于停用狀態(tài),但不影響開(kāi)機(jī)自啟
如果狀態(tài)中 Active: running, 表示服務(wù)正在運(yùn)行
8.重啟系統(tǒng)(非必要操作)
reboot
二、定時(shí)任務(wù)
1.創(chuàng)建.sh文件并賦予可執(zhí)行權(quán)限
sudo touch /opt/sh_fiels/sh02.sh
sudo chmod a+x /opt/sh_files/sh02.sh
2.輸入內(nèi)容
vim /opt/sh_files/sh02.sh
樣本內(nèi)容:
#!/bin/bash
# 查詢(xún)進(jìn)程
ps -aux | grep -v grep | grep /opt/django_projects/dj_project/uwsgi.ini > /opt/ps.txt 2>/dev/null
# 檢查是否有匹配的進(jìn)程
if grep -q 'uwsgi' /opt/ps.txt; then
# 關(guān)閉進(jìn)程
PID=$(grep 'uwsgi' /opt/ps.txt | awk '{print $2; exit}')
if [ -n "$PID" ]; then
kill -9 "$PID"
fi
fi
# 啟動(dòng)會(huì)議室服務(wù)
cd /opt/django_projects/dj_project || exit 1
source ../vc/bin/activate
uwsgi --ini /opt/django_projects/dj_project/uwsgi.ini & # 后臺(tái)運(yùn)行
deactavate # 定時(shí)循環(huán)需要用到
### (簡(jiǎn)單解釋?zhuān)哼^(guò)濾查詢(xún)會(huì)議室服務(wù)的進(jìn)程PID重定向到/opt/ps.txt文件里,標(biāo)準(zhǔn)錯(cuò)誤信息放在黑洞文件中;檢查是否有匹配的進(jìn)程,如果有便讀取ps.txt文件的第二列(即PID),將其作為kill命令的參數(shù)進(jìn)行傳遞并殺死指定進(jìn)程;重新啟動(dòng)會(huì)議室服務(wù))
3.打開(kāi)定時(shí)計(jì)劃任務(wù)文本編輯器
crontab -e
4.輸入內(nèi)容
另起一行輸入
* * * * * /path/to/your/script.sh
這里的五個(gè)星號(hào)分別代表:
-
分鐘(0-59)
-
小時(shí)(0-23)
-
日期(1-31)
-
月份(1-12 或 JAN-DEC)
-
星期(0-7,其中 0 和 7 都代表星期日,或者使用 SUN-SAT)
如果想要每隔一小時(shí)運(yùn)行一次腳本,應(yīng)該在小時(shí)和分鐘位置使用合適的值。例如,在每個(gè)小時(shí)的第 0 分鐘運(yùn)行腳本,你可以這樣寫(xiě):
0 * * * * /opt/sh_files/sh02.sh
依次按下 ctrl+x shift+y enter 進(jìn)行保存退出
系統(tǒng)會(huì)在預(yù)定時(shí)間執(zhí)行任務(wù),和windows定時(shí)任務(wù)類(lèi)型文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-845372.html
5.查看定時(shí)任務(wù)列表
crontab -l
提示:該系統(tǒng)下的定時(shí)任務(wù)可以是如何用戶(hù)創(chuàng)建的,可以不使用root權(quán)限;定時(shí)任務(wù)在系統(tǒng)重啟后仍會(huì)保持運(yùn)行;如果不需要該任務(wù),進(jìn)入任務(wù)文本中刪除任務(wù)即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-845372.html
到了這里,關(guān)于Ubuntu22.04設(shè)置開(kāi)機(jī)自啟.sh文件以及定時(shí)任務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!