当前位置:   article > 正文

Ubuntu22.04设置开机自启.sh文件以及定时任务_ubuntu 自启动.sh

ubuntu 自启动.sh

一、开机自启.sh文件

1.创建.sh文件, 路径可以自行选择
sudo touch /opt/sh_files/mysh01.sh
2.赋予可执行权限
sudo chmod a+x /opt/sh_files/mysh01.sh
3.输入内容到.sh文件中

注意:脚本文件的第一行应该是shebang,指定了执行该脚本的解释器。例如,如果是一个bash脚本,它应该是 #!/bin/bash

vim /opt/sh_files/mysh01.sh

样本内容:

  1. #!/bin/bash
  2. # 会议室服务
  3. cd /opt/django_projects/dj_project
  4. source ../vc/bin/activate
  5. uwsgi --ini /opt/django_projects/dj_project/uwsgi.ini &

保存退出

4.创建.service文件在 /etc/systemd/system 目录下
sudo nano /etc/systemd/system/myscript01.service

 上述命名会创建并打开一个文本编辑器,往里面输入以下内容:

  1. [Unit]
  2. Description=My Custom Script
  3. After=network.target
  4. [Service]
  5. ExecStart=/opt/sh_files/mysh01.sh
  6. Restart=on-failure
  7. User=root
  8. Group=root
  9. [Install]
  10. WantedBy=multi-user.target

注意:将ExecStart替换成自己创建的.sh绝对路径,UserGroup换成创建.sh文件的用户和组(可以用 ll /opt/sh_files/mysh01.sh 或者 ls -l /your/path/01.sh 进行查看)

5.重新加载systemd
sudo systemctl daemon-reload
6.启用并启动服务
sudo systemctl enable myscript01.service

禁用就把 enable --> disable

可以立即启动服务以测试它是否按预期工作

sudo systemctl start myscript01.service
7.检查服状态
sudo systemctl status myscript01.service

如果状态中 Active: failed 表示失败,检查对应文件或上述步骤是否执行成功

如果状态中 Active: deactivating ,表示服务当前处于停用状态,但不影响开机自启

如果状态中 Active: running, 表示服务正在运行

8.重启系统(非必要操作)
reboot

二、定时任务

1.创建.sh文件并赋予可执行权限
  1. sudo touch /opt/sh_fiels/sh02.sh
  2. sudo chmod a+x /opt/sh_files/sh02.sh
2.输入内容
vim /opt/sh_files/sh02.sh

样本内容:

  1. #!/bin/bash
  2. # 查询进程
  3. ps -aux | grep -v grep | grep /opt/django_projects/dj_project/uwsgi.ini > /opt/ps.txt 2>/dev/null
  4. # 检查是否有匹配的进程
  5. if grep -q 'uwsgi' /opt/ps.txt; then
  6. # 关闭进程
  7. PID=$(grep 'uwsgi' /opt/ps.txt | awk '{print $2; exit}')
  8. if [ -n "$PID" ]; then
  9. kill -9 "$PID"
  10. fi
  11. fi
  12. # 启动会议室服务
  13. cd /opt/django_projects/dj_project || exit 1
  14. source ../vc/bin/activate
  15. uwsgi --ini /opt/django_projects/dj_project/uwsgi.ini & # 后台运行
  16. deactavate # 定时循环需要用到

### (简单解释:过滤查询会议室服务的进程PID重定向到/opt/ps.txt文件里,标准错误信息放在黑洞文件中;检查是否有匹配的进程,如果有便读取ps.txt文件的第二列(即PID),将其作为kill命令的参数进行传递并杀死指定进程;重新启动会议室服务)

3.打开定时计划任务文本编辑器
crontab -e
4.输入内容

另起一行输入

* * * * * /path/to/your/script.sh

这里的五个星号分别代表:

  • 分钟(0-59)

  • 小时(0-23)

  • 日期(1-31)

  • 月份(1-12 或 JAN-DEC)

  • 星期(0-7,其中 0 和 7 都代表星期日,或者使用 SUN-SAT)

如果想要每隔一小时运行一次脚本,应该在小时和分钟位置使用合适的值。例如,在每个小时的第 0 分钟运行脚本,你可以这样写:

0 * * * * /opt/sh_files/sh02.sh

依次按下 ctrl+x shift+y enter 进行保存退出

系统会在预定时间执行任务,和windows定时任务类型

5.查看定时任务列表
crontab -l

提示:该系统下的定时任务可以是如何用户创建的,可以不使用root权限;定时任务在系统重启后仍会保持运行;如果不需要该任务,进入任务文本中删除任务即可。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/913485
推荐阅读
相关标签
  

闽ICP备14008679号