Heim > System-Tutorial > LINUX > Hauptteil

Linux 系统中 Sleep 和 Wait 命令的使用方式

王林
Freigeben: 2024-02-13 09:30:14
nach vorne
722 人浏览过

Linux 中的 sleep 和 wait 命令允许你以选定的速度运行命令,或在等待任务完成后捕获并显示任务的退出状态。sleep 只是在命令之间插入一个定时暂停,而 wait 命令则在完成后才通知它已完成。

Sleep 命令

sleep 命令会暂停指定的时间。它通常用于脚本中,但也可以在命令行中使用。在下面的示例中,sleep 在两个 date 命令之间暂停了 30 秒。

[root@localhost ~]# date ; sleep 30 ; date
Thu Nov 11 05:06:44 EST 2021
Thu Nov 11 05:07:14 EST 2021
Nach dem Login kopieren
Linux 系统中 Sleep 和 Wait 命令的使用方式

sleep 命令将数字参数作为秒数。但也可以通过在参数中添加一个字符来让它休眠不同的时间:

  • 10s = 10 seconds
  • 1m = 1 minute
  • 2h = 2 hours
  • 3d = 3 days
[root@localhost ~]# date ; sleep 10s ; date
Thu Nov 11 05:11:09 EST 2021
Thu Nov 11 05:11:19 EST 2021
Nach dem Login kopieren

睡眠时间也可以小于1秒钟,就是在数字前面加一个..

  • .1 = 十分之一秒
  • .01 = 百分之一秒
  • .001 = 千分之一秒
[root@localhost ~]# date ; sleep .1 ; date
Thu Nov 11 05:14:03 EST 2021
Thu Nov 11 05:14:03 EST 2021
Nach dem Login kopieren

sleep 命令通常用于定期运行命令,例如每 10 秒或每分钟一次,当你想要监视某些活动时。例如,可能正在等待同事登录文件服务器。您可能会运行这样的命令:

[root@localhost ~]# while true ; do who ; sleep 100 ; done
Nach dem Login kopieren
Linux 系统中 Sleep 和 Wait 命令的使用方式

可以观察内存使用情况的变化。

[root@localhost ~]# while true ; do free -h ; sleep 5 ; done
Nach dem Login kopieren
Linux 系统中 Sleep 和 Wait 命令的使用方式

Wait命令

wait 命令在等待后台进程完成后捕获后台进程的退出状态。您也可以在脚本中使用它。将 sleep 命令替换为要等待的进程。此脚本还显示退出状态。

#!/bin/bash

sleep 5 &
process_id=$!
echo “PID: $process_id”
wait $process_id
echo “Exit status: $?”
Nach dem Login kopieren

第一行在后台启动 sleep 命令。第二行获取最近执行的后台进程的进程 ID$!。然后脚本显示该信息,等待该进程完成并显示退出状态。

如果使用 wait -n(不需要额外的参数),wait 将等待任何后台任务完成。在下面的示例中, sleep 6 命令首先完成,脚本结束,但其他两个 sleep 进程将继续在后台运行几秒钟。

#!/bin/bash

sleep 15 &
sleep 9 &
sleep 6 &
wait -n
echo “First job has been completed.”
Nach dem Login kopieren

如果改成以下脚本,它会在每个睡眠过程完成时告诉你。由于时间关系,这将按照与睡眠过程开始时相反的顺序发生。

#!/bin/bash

sleep 15 &
sleep 9 &
sleep 6 &
wait -n
echo “First job has been completed.”
wait -n
echo “Next job has been completed.”
wait
echo “All jobs have been completed.”
Nach dem Login kopieren

注意:等待的进程必须是“子进程”(在当前 shell 中启动的进程)。

总 结

两者都可以在脚本或命令行中使用。但是,wait 命令仅适用于在后台运行的进程。

以上是Linux 系统中 Sleep 和 Wait 命令的使用方式的详细内容。更多信息请关注PHP中文网其他相关文章!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!