导航:首页 > 程序命令 > linux休眠命令

linux休眠命令

发布时间:2022-12-10 02:25:21

linux shell 中的sleep命令

linux shell 中的sleep命令

在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时)

sleep 1    睡眠1秒

sleep 1s    睡眠1秒

sleep 1m  睡眠1分

sleep 1h  睡眠1小时

Ⅱ OMV查询硬盘休眠状态(Linux通用)

在OMV中,可以针对硬盘分别设置休眠:

也可以用命令:

设置完成后,怎么检测或查看是不是生效了呢?这就涉及到如何查询硬盘状态了,可以用以下命令查看单块磁盘:

我有两块盘,怎么查看呢?

如果有很多块呢?上面这种方法就不好了,所以改进一下:

把这个存成ckdisk.sh到一个目录下,例如/root/code下,然后 chmod +x ckdisk.sh 增加可执行权限。

回到omv界面,找计划任务,添加一个:

注意路径要加对。

保存应用后,点运行即可看到结果:

以下是自动记录日志的方法补充

Ⅲ linux中程序处于停止态可以被唤醒吗

在Linux中,休眠主要分三个主要的步骤:
1) 冻结用户态进程和内核态任务
2) 调用注册的设备的suspend的回调函数, 顺序是按照注册顺序
3) 休眠核心设备和使CPU进入休眠态, 冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文.
当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行。
如何让Linux进入休眠呢?用户可以通过读写sys文件/sys /power/state 是实现控制系统进入休眠. 比如
# echo mem > /sys/power/state
命令系统进入休眠. 也可以使用

# cat /sys/power/state
来得到内核支持哪几种休眠方式.
1. 相关代码

• kernel/kernel/power/main.c
• kernel/arch/arm/mach-xxx/pm.c
• kernel/driver/base/power/main.c

接下来让我们详细的看一下Linux是怎么休眠/唤醒的:
用户对于/sys/power/state 的读写会调用到 kernel/kernel/power/main.c中的state_store(),
用户可以写入 const char * const pm_states[] 中定义的字符串, 比如"mem", "standby"。

const char *const pm_states[PM_SUSPEND_MAX] = {
#ifdef CONFIG_EARLYSUSPEND
[PM_SUSPEND_ON] = "on",
#endif
[PM_SUSPEND_STANDBY] = "standby",
[PM_SUSPEND_MEM] = "mem",
};
常见有standby(suspend to RAM)、mem(suspend to RAM)和disk(suspend to disk),只是standby耗电更多,返回到正常工作状态的时间更短。

然后state_store()会调用enter_state()<注:这是经典Linux调用流程, 在Android系统中,
Kernel将调用request_suspend_state,而不是enter_state>,它首先会检查一些状态参数,然后同步文件系统。

2. 准备, 冻结进程
当进入到suspend_prepare()中以后, 它会给suspend分配一个虚拟终端来输出信息, 然后广播一个系统要进入suspend的Notify,
关闭掉用户态的helper进程, 然后一次调用suspend_freeze_processes()冻结所有的进程, 这里会保存所有进程当前的状态,
也许有一些进程会拒绝进入冻结状态, 当有这样的进程存在的时候, 会导致冻结失败,此函数就会放弃冻结进程,并且解冻刚才冻结的所有进程。

3. 让外设进入休眠
现在, 所有的进程(也包括workqueue/kthread) 都已经停止了,内核态人物有可能在停止的时候握有一些信号量,
所以如果这时候在外设里面去解锁这个信号量有可能会发生死锁,所以在外设的suspend()函数里面作lock/unlock锁要非常小心,
这里建议设计的时候就不要在suspend()里面等待锁。而且因为suspend的时候,有一些Log是无法输出的,所以一旦出现问题,非常难调试。

然后kernel在这里会尝试释放一些内存。

最后会调用suspend_devices_and_enter()来把所有的外设休眠, 在这个函数中,
如果平台注册了suspend_ops(通常是在板级定义中定义和注册,在kernel/arch/arm/mach-xx/pm.c中调用suspend_set_ops),
这里就会调用 suspend_ops->begin(); 然后调用dpm_suspend_start,他们会依次调用驱动的suspend() 回调来休眠掉所有的设备。

当所有的设备休眠以后, suspend_ops->prepare()会被调用, 这个函数通常会作一些准备工作来让板机进入休眠。
接下来Linux,在多核的CPU中的非启动CPU会被关掉,通过注释看到是避免这些其他的CPU造成race condio,接下来的以后只有一个CPU在运行了。

suspend_ops 是板级的电源管理操作, 通常注册在文件 arch/arch/mach-xxx/pm.c 中.

接下来, suspend_enter()会被调用, 这个函数会关闭arch irq, 调用 device_power_down(), 它会调用suspend_late()函数,
这个函数是系统真正进入休眠最后调用的函数,通常会在这个函数中作最后的检查。 如果检查没问题, 接下来休眠所有的系统设备和总线,
并且调用 suspend_pos->enter() 来使CPU进入省电状态,这时就已经休眠了。代码的执行也就停在这里了。

三、Linux Resume流程

如果在休眠中系统被中断或者其他事件唤醒,接下来的代码就会开始执行,这个唤醒的顺序是和休眠的循序相反的,
所以系统设备和总线会首先唤醒,使能系统中断,使能休眠时候停止掉的非启动CPU, 以及调用suspend_ops->finish(),
而且在suspend_devices_and_enter()函数中也会继续唤醒每个设备,使能虚拟终端, 最后调用 suspend_ops->end()。

在返回到enter_state()函数中的,当 suspend_devices_and_enter() 返回以后,外设已经唤醒了,
但是进程和任务都还是冻结状态, 这里会调用suspend_finish()来解冻这些进程和任务, 而且发出Notify来表示系统已经从suspend状态退出, 唤醒终端。

到这里,所有的休眠和唤醒就已经完毕了,系统继续运行了。

Ⅳ linux命令中ps -ef详解

1、ps -ef表示查看全格式的全部进程。

ps是linux下最常用的也是非常强大的进程查看命令,常配合管道命令 | 和查找命令 grep 同时执行来查看特定进程。

参数含义:

-e 显示所有进程。-f 全格式。-h 不显示标题。-l 长格式。-w 宽输出。a 显示终端上的所有进程,包括其他用户的进程。r 只显示正在运行的进程。x 显示没有控制终端的进程。

2、(4)linux休眠命令扩展阅读:

进程状态:

R 运行,正在运行或在运行队列中等待。

S 中断,休眠中, 受阻, 在等待某个条件的形成或接受到信号。

D 不可中断,收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。

Z 僵死 ,进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。

T 停止,进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。

3、grep命令是查找

中间的|是管道命令 是指ps命令与grep同时执行

PS是LINUX下最常用的也是非常强大的进程查看命令

grep命令是查找,是一种强大的文本搜索工具,它能 使用正则表达式 搜索文本,并把匹配的行打印出来。

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

以下这条命令是检查java 进程是否存在:ps -ef |grep java

字段含义如下:

UID       PID       PPID      C     STIME    TTY       TIME         CMD

zzw      14124   13991      0     00:38      pts/0      00:00:00    grep --color=auto dae

UID      :程序被该 UID 所拥有

PID      :就是这个程序的 ID 

PPID    :则是其上级父程序的ID

C          :CPU使用的资源百分比

STIME :系统启动时间

TTY     :登入者的终端机位置

TIME   :使用掉的CPU时间。

CMD   :所下达的是什么指令

ps -e|grep dae

Ⅳ 如何设置linux进程的休眠

将一个进程置于休眠状态,一般步骤如下:
0. 定义并初始化(如果还没有的话)一个等待队列头(wait_queue_head_t),这个等待队列头应该是能被要休眠的进程和负责唤醒的进程都能访问 到。
1. 对进程的每次休眠,定义并初始化一个等待队列(wait_queue_t)
2. 把等待队列加入到相应的等待队列头中。
3. 把进程状态置为 TASK_INTERRUPTIBLE 或 TASK_UNINTERRUPTIBLE
4. 再次检查休眠条件是否为真,否则跳过第5步
5. 执行 schele()
6. 清理:将进程状态改为 TASK_RUNNING(通常已经是,除非是从第4步跳过来的),把等待队列从等待队列头中删除(防止多次唤醒)

Ⅵ sleep休眠怎么唤醒 linux

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无读者硬盘不能休眠

hd-idle无论怎样设置都无法使用硬盘在空闲时休眠,实在找不到原因。在查找相关资料时发现在linux操作系统还有个叫hdparm的硬盘控制软件,然后在OPENWRT软件搜索果真有这个软件,然后就安装试试。不想真能让我的硬盘在设置好的空闲时间后进入省电模式也可以说是休眠模式吧!给出我的安装使用过程。注:我的路由(HG255D刷OPENWRT)装有迅雷固件、个人博客、aria2、网络同步+常用共享组件!使用还是可以的负载不算很高。之前有人说装迅雷固件后不能休眠,但我的可以休眠。不能休眠的可以试试这个软件...

OPENWRT路由上安装与设置:

一、安装hdparm

opkg update

opkg install hdparm

二、执行命令:

hdparm -S 60 /dev/sda (放到开机启动项就可以每次开机都生效!)

hdparm -y /dev/sda (这个命令是立即休眠,测试硬盘是否休眠成功。)

说明:hdparm -S 60 /dev/sda 设置超时值(5分钟)使硬盘进入休眠模式(省电模式)(这个 S数值/12=分钟);/dev/sda 为挂载的硬盘路径,ls /dev/sda*查看你的盘符。

三、执行完hdparm -S 60 /dev/sda 这个命令时你的路由已经设置为5分钟休眠了。(注:5分钟硬盘无操作时省电模式,休眠时接到读写命令会自动唤醒进入工作模式)**Linux hdparm 命令**

四、hdparm功能说明:显示与设定硬盘的参数。

语法:hdparm -CfghiIqtTvyYZ-A <0或1>-d <0或1>-K <0或1>-n <0或1>-P -S -W <0或1>[设备]

补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。

测试各硬盘读取速度判断硬盘故障

在服务端命令窗口中执行如下命令

hdparm -t /dev/hda (IDE硬盘)

hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)

hdparm -t /dev/md0 (软RAID设备)

测试结果在空载情况下应 >40M/s ,在负载情况下平均应 > 20M/s 为正常,如测试结果极低则需要进一步使用硬盘专用检测工具测试是否为硬盘故障。

参数:

-a 设定读取文件时,预先存入块区的分区数,若不加上选项,则显示目前的设定。

-A<0或1> 启动或关闭读取文件时的快取功能。

-c 设定IDE32位I/O模式。

-C 检测IDE硬盘的电源管理模式。

-d<0或1> 设定磁盘的DMA模式。

-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。

-g 显示硬盘的磁轨,磁头,磁区等参数。

-h 显示帮助。

-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。

-I 直接读取硬盘所提供的硬件规格信息。

-k<0或1> 重设硬盘时,保留-dmu参数的设定。

-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。

-m 设定硬盘多重分区存取的分区数。

-n<0或1> 忽略硬盘写入时所发生的错误。

-p 设定硬盘的PIO模式。

-P 设定硬盘内部快取的分区数。

-q 在执行后续的参数时,不在屏幕上显示任何信息。

-r<0或1> 设定硬盘的读写模式。

-S 设定硬盘进入省电模式前的等待时间。

-t 评估硬盘的读取效率。

-T 平谷硬盘快取的读取效率。

-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。

-v 显示硬盘的相关设定。

-W<0或1> 设定硬盘的写入快取。

-X 设定硬盘的传输模式。

-y 使IDE硬盘进入省电模式。

-Y 使IDE硬盘进入睡眠模式。

阅读全文

与linux休眠命令相关的资料

热点内容
下班之后的程序员 浏览:71
检测支持ssl加密算法 浏览:340
衢州发布新闻什么APP 浏览:82
中国移动长沙dns服务器地址 浏览:249
wifi密码加密了怎么破解吗 浏览:596
linux命令cpu使用率 浏览:67
linux实用命令 浏览:238
传奇引擎修改在线时间命令 浏览:109
php取域名中间 浏览:897
cad命令栏太小 浏览:830
php开发环境搭建eclipse 浏览:480
qt文件夹名称大全 浏览:212
金山云服务器架构 浏览:230
安卓系统笔记本怎么切换系统 浏览:618
u盘加密快2个小时还没有搞完 浏览:93
小米有品商家版app叫什么 浏览:94
行命令调用 浏览:436
菜鸟裹裹员用什么app 浏览:273
穷查理宝典pdf下载 浏览:515
csgo您已被禁用此服务器怎么办 浏览:398