linux添加开机定时任务

很多时候,我们都需要开机自动执行某段命令,比如之前的挂载onedrive云盘,最好能在每次开机一段时间后执行挂载任务。

在物理主机中

把命令写入xxx.sh文件:

#! /bin/bash
#这里写需要执行的语句

利用crontab开机后执行xxx.sh

crontab -e
#进入编辑,输入如下行
@reboot /home/test.sh #开机马上启动这个脚本,如果脚本中有依赖系统中其他服务,会发生因为其他服务启动不完全,而导致自己脚本失败的情况
@reboot sleep 60; /home/test.sh #最好加上休眠一会,等待其他服务启动完全了,再启动自己的脚本
@reboot (sleep 60; sh /home/test.sh) #设置脚本在启动后的60s启动、/home\test.sh 就是脚本的存放地址

nohup后台任务

语法格式:

 nohup Command [ Arg … ] [ & ]
nohup /root/runoob.sh &
在终端如果看到以下输出说明运行成功:

appending output to nohup.out
这时我们打开 root 目录 可以看到生成了 nohup.out 文件。
nohup python logdataCollection.py >>/logs/log_cronjob.txt 2>&1 &

在docker中

对于在docker中,以上两种方法都不太有效,可以把构建好的环境打包成镜像,然后重新生成容器时加入以下参数:

docker run -ti ouruser/test:v1 /bin/bash /home/service.sh

其中,/home/service.sh就是所要执行的脚本

docker 启动镜像后执行 shell 命令

方式二:
在docker中添加需要启动的服务脚本 service.sh (假定放在 /home 目录下)
#!/bin/sh
/bin/serviceA start #启动服务
/bin/bash #保留一个终端,防止容器自动退出
将容器打包为镜像
docker commit -m “Added service test” -a “Docker Newbee” 0b2616b0e5a8 ouruser/test:v1
启动新的镜像
docker run -ti ouruser/test:v1 /bin/bash /home/service.sh

systemctl restart nezha-agent.service
systemctl restart status-client

docker run -it mystatus:0.1 /bin/bash /root/start.sh

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇