让系统喘口气 怎么在linux系统中设置休眠状态

让系统喘口气 怎么在linux系统中设置休眠状态,第1张

电脑系统使用久了,也需要休息,就像人一样,所以今天就随着小编一起去了解一下关于在linux系统中如何设置休眠状态,让系统有时间进行恢复和休息哦!

在linux下,我喜欢用命令让系统进入休眠:

$ echo mem | sudo tee /sys/power/state

当然,不用每次都要敲这么一长串,可以把它加入到一个脚本中。 再将该脚本命令加入到/etc/sudoers文件,就可以避免每次都需要输入用户密码了。

有同事搞不清楚为什么下面的命令执行不成功:

$ sudo echo mem >/sys/power/state

上面这个shell命令的流程是:fork一个子进程,等待 → shell关闭标准输出,打开重定向文件state作为标准输出 → execve "sudo echo mem" → 退出。 在第2步的时候shell没有写权限,所以已经失败了。

将一个进程置于休眠状态,一般步骤如下:

0. 定义并初始化(如果还没有的话)一个等待队列头(wait_queue_head_t),这个等待队列头应该是能被要休眠的进程和负责唤醒的进程都能访问 到。

1. 对进程的每次休眠,定义并初始化一个等待队列(wait_queue_t)

2. 把等待队列加入到相应的等待队列头中。

3. 把进程状态置为 TASK_INTERRUPTIBLE 或 TASK_UNINTERRUPTIBLE

4. 再次检查休眠条件是否为真,否则跳过第5步

5. 执行 schedule()

6. 清理:将进程状态改为 TASK_RUNNING(通常已经是,除非是从第4步跳过来的),把等待队列从等待队列头中删除(防止多次唤醒)


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

原文地址: http://outofmemory.cn/tougao/11230678.html

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

发表评论

登录后才能评论

评论列表(0条)

保存