如何在特定事件上自动执行任务?

如何在特定事件上自动执行任务?

Playonlinux 和 WINE 都很棒。我终于可以享受我最喜欢的游戏和 Linux 的乐趣,而无需双启动或在我的磁盘上塞满 Windows 垃圾!但有些已经很老了,只能在较低的分辨率下运行。幸运的是,我保持终端模拟器打开,然后执行xrandr -s 1366x768.但有时这很困难:800x600我无法向下滚动,也看不到我在写什么。我确切地知道改变分辨率的过程。这让我开始思考:我可以自动化它吗?

我知道crontab我可以将任务安排在特定时间或启动时。但是,如何安排某些特定脚本运行或结束的时间呢?或者甚至当系统卡住时,杀死有罪的进程?如何为任何事件安排任务?我需要另一个程序吗?

先感谢您,

答案1

将脚本包装在 shell 脚本中并运行 shell 脚本。

#!/bin/bash

### xrandr command to set display size downsized
xrandr -s 800x600

... run program ...

### xrandr command to reset display back to normal size
xrandr -s 1366x768

答案2

您可以在执行多个脚本时一起运行它们。

;例如:如果您想在系统完成更新后关闭系统,您可以使用中间命令将它们一起运行。喜欢 sudo apt-get update; sudo poweroff

类似地,在您的情况下,在调用 wine 程序时,您可以通过终端运行它们或编写 shell 脚本来执行相同的操作,执行类似以下内容:

xrandr -s 800x600; path/to/program -parameters; xrandr -s 1366x768

一旦您的程序结束(并且不返回任何错误作为其退出代码),终端应该运行上面脚本的最终代码。如果您的程序自动将分辨率更改为 800x600,则不需要上述代码的第一部分。

编辑:正如 @slm 所指出的,使用;而不是&&因为如果其中一个命令返回 false,则其余命令将不会被执行。相应地纠正了我的答案。

相关内容