linux禁止系统休眠,让linux系统休眠

“iPad占有68%的市场份额,但是却占有平板市场91%的Web流量。“我不知道其他平板都在做什么!”” – Tim Cook

“在休眠(画外音)”

研发同事下班后关机有一个有趣的现象:做应用的同事要么关机,要么只关显示器;做驱动的同事喜欢让电脑进入休眠。 喜欢关机的同学要么为了省电要么认为长时间不关机系统变慢,只关显示器的同学显得不厚道,真是不知道驱动工程师的苦和累啊。

在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没有写权限,所以已经失败了。

~EOF~ 2013.02.22

阅读(3891) | 评论(0) | 转发(1) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 系统中,可以通过在程序中调用系统函数来禁止系统休眠。具体来说,可以使用以下两种方法: 1. 使用系统函数 可以使用系统函数 `system()` 来调用 `sudo` 命令来禁止系统休眠。例如,在 C++ 程序中可以这样写: ```c++ #include <cstdlib> int main() { system("sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target"); return 0; } ``` 这里的 `system()` 函数用来执行 `sudo` 命令,将系统休眠相关的服务设置为禁用状态,从而禁止系统休眠。需要注意的是,这种方法需要程序运行时有管理员权限。 2. 使用 DBus 接口 DBus 是 Linux 系统中的一个消息总线系统,可以用来在程序之间进行通信。在这里,可以使用 DBus 接口来禁止系统休眠。例如,在 Python 程序中可以这样写: ```python import dbus bus = dbus.SystemBus() pm_proxy = bus.get_object('org.freedesktop.login1', '/org/freedesktop/login1') pm_interface = dbus.Interface(pm_proxy, 'org.freedesktop.login1.Manager') pm_interface.Inhibit('Sleep', '禁止休眠') ``` 这里的 `Inhibit()` 方法用来禁止系统休眠。第一个参数表示要禁止的操作类型,可以是 `Sleep`、`Shutdown`、`Reboot` 等;第二个参数表示禁止操作的原因。需要注意的是,这种方法需要使用 DBus 接口,需要程序运行时有相应的权限。 无论使用哪种方法,都可以在程序里禁止 Linux 系统休眠

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值