Shell异步延迟执行命令
在Shell脚本中,特别是Linux操作系统内置的各项启动脚本,经常会遇到需要延迟异步去执行的命令。例如在/etc/rc.local
文件或配置网卡相关的脚本文件里面,希望对应脚本能够先返回exit 0
以免阻塞任务,然后再异步的去执行不关注执行结果的一些命令,甚至延迟执行异步命令。
在*nux命令中,命令 &
为后台进程命令(放在命令参数最后面的&
表示设置此命令后台执行)。
因此,在Shell中,命令之后跟上&
即异步去执行该命令。
sleep
是延时命令,sleep 1
代表将命令延迟1秒后执行。
因此,在Shell中异步延迟执行命令,只需要同时使用&
和sleep
。例如异步延迟30秒执行命令:
(
sleep 30
希望被延迟执行的命令
) &
例如,在/etc/rc.local
中设置默认网关(这个方法在《Linux网卡优先级配置及同时访问内外网设置》中就有实际应用):
#!/bin/sh
(
sleep 30
/usr/sbin/route add default gw 10.10.11.250 eth0
) &
exit 0
这样一来,exit 0
将会被马上执行,而设置网关的任务将会被延迟到30s以后再执行。
除特别注明外,本站所有文章均为原创。原创文章均已备案且受著作权保护,未经作者书面授权,请勿转载。
打赏
交流区
暂无内容
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了