当前位置:首页 » 编程软件 » linux脚本sleep

linux脚本sleep

发布时间: 2022-11-20 04:32:32

linux 中sleep是什么意思

sleep
睡眠,参数为时间,单位:秒

shell中,用法:
sleep seconds,表示睡眠多少秒

代码中,用法:
#include <unistd.h>

unsigned int sleep(unsigned int seconds);

视实际需要,有时需要睡眠若干秒后继续执行,如:
执行某一过程,但并不关心是否执行完毕、执行成功还是失败,也可能执行过程中挂住,这时又不想一直卡在这里不动,就可设定一个睡眠时间x秒,x秒后继续向下执行。

② linux sleep命令怎么使用

sleep命令
常用工具命令 sleep命令暂停指定的时间。
语法
sleep(参数)
参数
时间:指定要暂停时间的长度。
时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数。 实例 有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的,下面是一个Shell进度条的脚本演示在脚本中生成延时。
#!/bin/bash
b='' for ((i=0;$i<=100;i++)) do printf "Progress:[%-100s]%d%%\r" $b $i sleep 0.1 b=#$b done

③ linux 的sleep()、usleep()、nanosleep()函数

原文地址: https://blog.csdn.net/weibo1230123/article/details/79139476

sleep()非系统调用,sleep()是在库函数中实现的,它是通过alarm()来设定报警时间,使用sigsuspend()将进程挂起在信号SIGALARM上。
sleep()只能精确到秒级上。sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。

return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余秒数。

除了时间单位为微秒以外,在使用上与sleep()差不多。还有就是实现也是不同的,sleep因为是用alarm实现的,所以时间单位为s ,而usleep的时间单位为us
,那肯定不是由alarm实现的,所以说它们的实现不同,但都是linux用的,而window下不能用,因为都是sleep和usleep都是在unistd.h下定义的。

return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余微秒数。

这个函数功能是暂停某个进程直到你规定的时间后恢复,参数req就是你要暂停的时间,其中req->tv_sec是以秒为单位,而tv_nsec以毫微秒为单位(10的-9次方秒)。由于调用nanosleep是是进程进入TASK_INTERRUPTIBLE,这种状态是会相应信号而进入TASK_RUNNING状态的,这就意味着有可能会没有等到你规定的时间就因为其它信号而唤醒,此时函数返回-1,切还剩余的时间会被记录在rem中。
return: 若进程暂停到参数 req所指定的时间,成功则返回0,若有信号中断则返回-1,并且将剩余微秒数记录在 rem中。

unistd.h 是 unix 系统标准头文件,用于系统调用,相当于win32中的windows.h,unistd.h 定义的函数只能用于UNIX环境中,而不能用于windows。所以sleep 和 usleep 只能用于linux下,而不能用于windows 。
nalosleep 和 其它时间日期操作函数一样都是定义在time.h中的,所以都适用

④ 在linux下,想用sleep函数实现延时五秒,应该怎么设参数

使用权限 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
说明 : sleep 可以用来将目前动作延迟一段时间
参数说明 :
--help : 显示辅助讯息
--version : 显示版本编号
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数
例子 :
显示目前时间后延迟 1 分钟,之后再次显示时间 :
date;sleep 1m;date

这个命令更多应用于shell脚本编程里和程序里

如下面的一段程序:

应用程序:

复制代码
代码如下:

#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif
调用asm/delay.h的udelay,udelay应该是纳秒级的延时
Dos:
sleep(1); //停留1秒
delay(100); //停留100毫秒
Windows:
Sleep(100); //停留100毫秒
Linux:
sleep(1); //停留1秒
usleep(1000); //停留1毫秒

每一个平台不太一样,最好自己定义一套跨平台的宏进行控制

秒还是微秒?关于延时函数sleep()
因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。

原来linux下的sleep函数原型为:
unsigned int sleep(unsigned int seconds);
而MFC中的Sleep函数原型为:
void Sleep(DWORD dwMilliseconds);
也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec);当然,使用的时候别忘记#include <system.h>哦。

另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250);

⑤ Linux服务器rc.local 执行脚本,中的sleep命令

sleep 30,等待30秒。
建议把sleep命令以及sleep之后的动作写在先前那个命令动作后面,同时放置在后台。

⑥ linux下的sleep函数

您好,
请在printf的字串后加换行符

{printf("%d \n",i); sleep(1); }

printf是行缓冲打印,它有一个buf,buf满或遇\n,打印输出
请采纳为最佳答案,谢谢

⑦ Linux下的sleep函数 要用的话得包涵什么头文件啊

Linux下的sleep函数要用的话得需要#include <unistd.h>

sleep把进程的运行状态改为睡眠,将其从系统可执行队列去掉,这样系统就不会调度到该进程,不会分配CPU时间片,同时根据该进程的睡眠时间,将进程挂入相应的定时器队列中。

同时内核维持一个定时器队列,每一次时钟中断处理,都把当前到期的队列中的进程唤醒,加入到可运行进程队列中。 同时对所有挂入定时器队列中的进程时间值减1。

参考代码:

#include<stdio.h>

#include<unistd.h>

intmain()

{

int sec=0,

usec=0;

while(1)

{

printf("sec=%d ",++sec);

sleep(1);

printf("usec=%d ",++usec);

usleep(1000000);

}

return0;

}

(7)linux脚本sleep扩展阅读:

在Linux下,sleep中的“s”不大写

sleep()单位为秒,usleep()里面的单位是微秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。

特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。

⑧ linux在原来的tty上杀死sleep怎么操作

1、首先打开linux虚拟机,运行虚拟机,在虚拟机中打开明令行。
2、其次使用killall通过程序的名字,来杀死进程。
3、最后输入命令就可以在原来的tty上杀死sleep了。

⑨ linux中的sleep怎么用

sleep函数: #include <unistd.h> unsigned int sleep(unsigned int seconds); 此函数使调用进程被挂起,直到满足以下条件之一: 1)已经过了seconds所指定的墙上时钟时间 2)调用进程捕捉到一个信号并从信号处理程序返回 注:由于其他系统活动,实际返回时间比所要求的会迟一些,像alarm一样。 sleep的返回值: 1)在上述第一种情形中,返回值是0 2)当由于捕捉到某个信号sleep提前返回时,返回值是未睡够的时间(所要求的时间减去实际休眠时间) 看看下面的例子,猜猜sleep()的返回值是多少 1 #include <stdio.h> 2 #include <time.h> 3 #include <signal.h> 4 5 #define DIAPAUSE 30 //sleep time 30s 6 #define TIMEOUT 5 7 8 void sigalrm(int signo); 9 10 int main() 11 { 12 struct sigaction sa; 13 14 sa.sa_handler = sigalrm; 15 sa.sa_flags = 0; 16 sigemptyset(&sa.sa_mask); 17 if(sigaction(SIGALRM, &sa, NULL) < 0) 18 { 19 printf("sigaction error!\n"); 20 return; 21 } 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 0; 32 } 33 34 void sigalrm(int signo) 35 { 36 printf("timeout...\n"); 37 return; 38 } 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然后再进入循环。

⑩ linux系统c语言进程不想被sleep阻塞等待怎么解决

1、启动后台子任务,在执行命令后加&操作符,表示将命令放在子shell中异步执行。可以达到多线程效果。如下,sleep10#等待10秒,再继续下一操作sleep10&#当前shell不等待,后台子shell等待。
2、wait命令wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用wait可以在bash脚本“多进程”执行模式下,起到一些特殊控制的作用。

热点内容
保时捷卡宴哪个配置比较好 发布:2025-05-13 19:00:08 浏览:725
c语言负数运算 发布:2025-05-13 18:45:21 浏览:428
太空杀电脑版连接不到服务器 发布:2025-05-13 18:40:19 浏览:457
同样的配置为什么跑分不同 发布:2025-05-13 18:39:06 浏览:278
获取linuxcpu序列号 发布:2025-05-13 18:36:35 浏览:738
appleid为什么连接服务器出现问题 发布:2025-05-13 18:17:37 浏览:971
书翁怎么配置 发布:2025-05-13 18:17:36 浏览:911
云数据库mongodb 发布:2025-05-13 18:16:12 浏览:774
A7编程 发布:2025-05-13 18:15:26 浏览:742
python视图 发布:2025-05-13 18:14:01 浏览:759