linux中的sleep怎么用

linux中的sleep怎么用,第1张

sleep函数:#include <unistd.h>unsigned int sleep(unsigned int seconds)此函数使调用进程被挂起,直到满足以下条件之一:1)已经过了seconds所指定的墙上时钟时间2)调用进程捕捉到一个信号并从信号处理程序返回注:由于其他系统活动,实际返回时间比所要求的会迟一些,像alarm一样。sleep的返回值:1)在上述第一种情形中,返回值是02)当由于捕捉到某个信号sleep提前返回时,返回值是未睡够的时间(所要求的时间减去实际休眠时间)看看下面的例子,猜猜sleep()的返回值是多少1 #include <stdio.h>2 #include <time.h>3 #include <signal.h>4 5 #define DIAPAUSE 30//sleep time 30s6 #define TIMEOUT 57 8 void sigalrm(int signo)9 10 int main()11 {12 struct sigaction sa13 14 sa.sa_handler = sigalrm15 sa.sa_flags = 016 sigemptyset(&sa.sa_mask)17 if(sigaction(SIGALRM, &sa, NULL) <0)18 {19 printf("sigaction error!\n")20 return21 }22 23 while(1)24 {25 printf("alarm(TIMEOUT)...\n")26 alarm(TIMEOUT)27 printf("...\n")28 printf("sleep(DIAPAUSE) == %d\n", sleep(DIAPAUSE))29 }30 31 return 032 }33 34 void sigalrm(int signo)35 {36 printf("timeout...\n")37 return38 }sleep函数的返回值是25。如果将TIMEOUT的值改为大于DIAPAUSE的值,如50的话,sleep函数在睡够了DIAPAUSE后就会返回,返回值为0。如果我们即需要alarm又需要sleep一个预订的事件怎么办?如上面的例子,我想在...后再sleep 30s然后再进入循环。这在socket通讯过程中,在设置超时的时候可能会用到。注意到alarm函数。#include <unistd.h>unsigned int alarm(unsigned int senconds)使用alarm函数可以设置一个计时器,在将来某个指定的时间该计时器会超时。当计时器超时时,产生SIGALARM信号。如果不捕捉或不忽略此信号,则其默认动作是终止调用该alarm函数的进程。每个进程只能有一个闹钟时钟,如果在调用alarm时,已经为该进程设置过闹钟时钟,而且它还没有超时,则将该闹钟时钟的余留值作为本次alarm函数调用的返回值。以前登记的闹钟时钟将被新值代替。如果有以前为进程登记的尚未超过的闹钟时钟,而且本次调用的seconds为0,则取消以前的闹钟时钟,其余留值仍作为alarm的返回值。(以上这几段话摘自《unix环境高级编程》)。所以在while循环的printf("...\n")后面添加一句alarm(0)就可以满足我的要求,即在...后再sleep 30s然后再进入循环。

sleep,即睡眠的意思,在Linux系统中,sleep命令主要用来延迟shell脚本的时间,也可使用于Windows系统中,下面小编针对sleep命令在Linux系统中的用法做个详细介绍,并为大家区别下Linux

sleep和Windows

sleep命令的用法。

linux

sleep

命令用来睡眠一段时间,sleep

可以用来将目前动作延迟一段时间。时间的单位有:秒(s),分钟(m),小时(h),天(d)

用法如下:

sleep

Number(suffix)

默认单位是秒(s)

sleep

1

==

sleep

1s

sleep

0.01

查看版本

linux

sleep

windows

sleep的区别

在linux里,sleep

的单位是秒,也就是sleep

1000就是睡眠了1000

秒,而在windows中,如果调用sleep函数单位是毫秒,sleep(1000)则是睡眠了1秒。

上面就是Linux使用sleep命令的方法介绍了,从本文的介绍中可以看出,sleep在Linux和Windows系统的区别主要表现在单位上,但用法并无太大差别。

由于at大多数 Linux 发行版都没有默认安装该工具,因此我们需要先添加它。以下是大多数较受欢迎的方法。

Ubuntu / Debian / Linux Mint

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com sudo apt install at

Fedora / AlmaLinux / Rocky Linux

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com sudo dnf install at

Arch Linux / Manjaro

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com sudo pacman -S at

然后,请验证该atd服务是否已启用并正在运行,因为该at命令依赖于它。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com sudo systemctl status atd

检查 atd 服务是否正在运行。

如果不是,您可以通过运行如下所示的两个命令来激活并运行它。

sudo systemctl enable atd sudo systemctl start atd

OK。我们现在可以继续使用at命令设置警报。语法很简单。键入at,然后是您希望执行特定 *** 作的时间。这里有些例子:

安排作业在 10 分钟后执行:

at now +10 minutes

安排在特定时间执行的作业:

at 15:00 at 3:00 pm

安排作业在 1 月 19 日早上 8:30 执行。

at 8:30 January 19

安排明天下午 5:00 执行作业。

at 5:00 pm tomorrow

现在你应该明白了。使用“ HH:MM ”格式指定时间。在时间后使用“ am ”或“ pm ”表示 12 小时制时间格式。最重要的是,可以使用月份名称后跟日期来指定日期。此外,at接受“ now+ interval ”增量,其中 interval 是一个数字,后面可以跟以下字符串之一:“ minutes ”、“ hours ”、“ days ”或“ weeks ”。

现在让我们继续在 Linux 上设置闹钟。为此,我们将在无界面模式(无 GUI)下使用 VLC 媒体播放器,并指示它在特定时间播放给定的媒体文件。因此,如果您的 Linux 系统上没有 VLC,请安装它。

我们将闹钟定在早上 7:30。然后,当您输入所需的命令时at 7:30,您将被带到at命令行界面,您可以在其中输入要在指定时间运行的命令。在这种情况下,那将是:

vlc --intf dummy alarm.mp3

当然,如果媒体文件位于主目录之外的其他位置,请指定完整路径。

准备就绪后,按“ Enter ”,然后按键盘快捷键“ Ctrl + D ”保存您的作业并退出。

使用 at 命令安排作业。

要查看所有计划at的作业,请键入:

[linuxmi@fedora www.linuxmi.com]$ at -l

您将看到每个作业的唯一 ID、计划运行的日期和时间以及运行它的用户。要删除作业,请键入at -r后跟其唯一 ID 号。

at -r 3

您可以在 Linux 手册页at上查看命令选项的完整列表。

使用 sleep 命令在 Linux 上设置闹钟

在 Linux 上,该sleep命令将 shell 脚本或命令的执行暂停指定的时间。因此,这使它成为在 Linux 中设置警报的理想选择。

但是,在这里您没有at命令提供的灵活性。您所能做的就是指定应该在多长时间后触发一个动作。此外,您可以以秒 ( s)、分钟 ( m)、小时 ( h) 和天 ( d) 为单位设置延迟时间。

因此,要设置闹钟,您必须首先计算它应该在距当前时间多远的时间后发生。此外,sleep执行命令的终端窗口必须保持打开状态。关闭它将导致命令中止并且设置警报失败。

sleep要使用将在 8 小时后启动 VLC 播放器播放媒体文件的命令在 Linux 上设置闹钟,请键入:

[linuxmi@fedora www.linuxmi.com]$ sleep 8h &&vlc --intf dummy alarm.mp3

使用 sleep 命令在 Linux 上安排警报。

就是这样。请记住,您不应关闭终端窗口。同样,如果你想让闹钟在 20 分钟后播放,命令如下:

[linuxmi@fedora www.linuxmi.com]$ sleep 20m &&vlc --intf dummy alarm.mp3

您可以在Linux 手册页上查看 sleep 命令选项的完整列表。

通过 GNOME 时钟在 GNOME 中设置闹钟

您可以使用内置的 GNOME 时钟应用程序通过 GNOME 桌面环境设置闹钟。如果您还没有它,您可以通过从您正在使用的发行版的软件中心安装它来轻松获得它。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7245925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存