如何延迟运行shell脚本

4
我希望运行一个脚本,这个脚本是一个服务器但有10秒的延迟,因为在运行这个脚本之前我需要做一些事情。服务器位于文件夹/etc/init.d中,为了使其工作,我需要在命令行中进入该路径并重新启动服务器,输入以下命令:
sudo ./znodejs.sh stop

然后我再次启动服务器:

sudo ./znodejs.sh start

我想知道是否有任何方法可以延迟运行这些命令。

2个回答

6
为了让脚本在启动时运行,请先将其设为可执行:
$ sudo chmod 755 /etc/init.d/znodejs.sh

然后,您可以将脚本注册以在启动时运行:
$ sudo update-rc.d znodejs.sh defaults

睡眠命令会暂停一段给定的时间,单位为秒:
sudo ./znodejs.sh stop
sleep 10
sudo ./znodejs.sh start

我觉得我的问题并不清楚,服务器从一开始就自动启动,所以我想创建一个脚本来延迟执行这些命令。我不想每次我的树莓派重新启动时都在命令行中输入它。因此,我尝试在rc.local中这样运行它:(睡眠10秒; sudo /etc/init.d/znodejs.sh stop) (睡眠10秒; sudo /etc/init.d/znodejs.sh start) - Jorge Cordero
@JorgeCordero 我已经更新了我的答案,展示了如何使你的脚本在启动时运行。 - Chris Montanaro

4
标准的 Unix 睡眠命令被称为:
sleep

要等待一秒钟,请使用

sleep 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接