Byt*_*der 3 cpu-load lock-screen login users process
我的 14.10 笔记本电脑上主要有两个帐户:我的(管理员)和我兄弟的(受限)。
现在当我的兄弟登录并运行一些应用程序时,例如带有flash player的firefox,它消耗大量CPU。我有一个 Intel 2GHz,2 个内核,但由于显卡半损坏而使用软件渲染。
当他现在锁定他的帐户而我登录我的帐户时,即使我什么都不做,CPU 也处于 80% 左右。indicator-multiload我认为,将其他用户的 firefox 和 compiz 显示为消耗最多的进程,有时也是 xorg。
简而言之:我可以运行命令/脚本来暂停其他用户启动的进程并在我完成工作后再次恢复它们吗?如果可以在每次锁定/登录/注销时执行,那就太好了。
但这对所有应用程序都是安全的吗?我需要注意哪里?
一种方法是将SIGSTOP信号发送到您兄弟的所有进程:
sudo pkill -STOP -u brother
Run Code Online (Sandbox Code Playgroud)
要唤醒已停止的进程,请使用以下SIGCONT信号:
sudo pkill -CONT -u brother
Run Code Online (Sandbox Code Playgroud)
您可以使用 Upstart 会话作业,该作业将在您登录或注销或锁定或解锁屏幕时运行。例如,.conf在~/.config/upstart(例如~/.config/upstart/stop-brother.conf)中创建一个文件,其中包含:
description "Stop all my brother's processes"
start on desktop-start or desktop-unlock
task
exec sudo pkill -STOP -u brother
Run Code Online (Sandbox Code Playgroud)
以及一个~/.config/upstart/start-brother.conf包含以下内容的反向文件(例如):
description "Resume all my brother's processes"
start on desktop-end or desktop-lock
task
exec sudo pkill -CONT -u brother
Run Code Online (Sandbox Code Playgroud)
您还需要NOPASSWD输入sudoers:
sudo tee /etc/sudoers.d/stop-brother <<EOF
$USER ALL = (ALL) /usr/bin/pkill -STOP -u brother, /usr/bin/pkill -CONT -u brother
EOF
Run Code Online (Sandbox Code Playgroud)
现在,当您登录、注销、锁定或解锁屏幕时,信号应该会自动发送。您可以使用以下任一方法手动启动:
start stop-brother
start start-brother
Run Code Online (Sandbox Code Playgroud)