我可以以某种方式暂停在后台登录的用户的所有进程吗?

我的14.10笔记本电脑上主要有两个帐户:我的(管理员)和我的兄弟(限制)。

现在当我的兄弟登录并使用flash player运行一些像firefox这样的应用程序时,它会消耗很多CPU。 我有一个英特尔2GHz,2核,但由于半破坏的显卡软件渲染。
当他现在锁定他的账户并登录我的账户时,即使我什么都不做,CPU也只有80%左右。 indicator-multiload显示firefox和其他用户的compiz作为最耗费的进程,有时也是xorg,我想。

简而言之:我可以运行命令/脚本来暂停其他用户启动的进程,并在完成工作后再次恢复它们吗? 如果可以在每次锁定/登录/注销时执行,那将会很好。

但这对所有应用程序都安全吗? 我在哪里要注意?

一种方法是将SIGSTOP信号发送到您兄弟的所有进程:

 sudo pkill -STOP -u brother 

要唤醒已停止的进程,使用SIGCONT信号:

 sudo pkill -CONT -u brother 

您可以使用Upstart会话作业,该作业将在您登录或注销或锁定或解锁屏幕时运行。 例如,在~/.config/upstart创建一个.conf文件(比如~/.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 

和一个converse文件(比如~/.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 

您还需要在sudoers输入NOPASSWD条目:

 sudo tee /etc/sudoers.d/stop-brother < 

现在,当您登录,注销,锁定或解锁屏幕时,应自动发送信号。 您可以使用以下方式手动启动:

 start stop-brother start start-brother 

检查哪个应用程序占用了更多资源。

使用该命令查找该应用程序的pid

pidof "application name"不带引号。

  sudo kill -STOP "ID of the process" 

然后,完成工作后,使用以下命令启动已停止的进程。

 sudo kill -CONT "PID that you have killed earlier" 

试试看!

使用CRIU检查此保存和还原Linux进程