특정 이벤트에 대한 작업을 자동화하는 방법은 무엇입니까?

특정 이벤트에 대한 작업을 자동화하는 방법은 무엇입니까?

Playonlinux와 WINE은 모두 훌륭합니다. 듀얼 부팅을 하거나 Windows 정크로 디스크를 복잡하게 만들지 않고도 마침내 좋아하는 게임과 Linux를 즐길 수 있게 되었습니다! 그러나 일부는 매우 오래되었으며 낮은 해상도에서만 실행됩니다. 운 좋게도 터미널 에뮬레이터를 열어두고 실행합니다 xrandr -s 1366x768. 하지만 가끔은 어렵습니다. 800x600아래로 스크롤하여 작성 중인 내용을 볼 수 없습니다. 해상도가 바뀌는 과정을 정확히 알고 있어요. 나는 이것을 자동화할 수 있을까?라는 생각을 하게 되었습니다.

crontab특정 시간이나 시작 시 작업을 예약할 수 있다는 것을 알고 있습니다 . 하지만 특정 스크립트가 실행되거나 종료되는 시기를 어떻게 예약합니까? 아니면 시스템이 멈췄을 때 유죄 프로세스를 종료할 수도 있나요? 이벤트에 대한 작업을 예약하는 방법은 무엇입니까? 다른 프로그램이 필요한가요?

미리 감사드립니다.

답변1

스크립트를 쉘 스크립트로 래핑하고 쉘 스크립트를 실행하십시오.

#!/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

마찬가지로 귀하의 경우 와인 프로그램을 호출할 때 터미널을 통해 실행하거나 쉘 스크립트를 작성하여 동일한 작업을 수행할 수 있습니다.

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

프로그램이 종료되면(그리고 종료 코드로 어떤 오류도 반환하지 않음) 터미널은 위 스크립트의 최종 코드를 실행해야 합니다. 프로그램이 자동으로 해상도를 800x600으로 변경하는 경우 위 코드의 첫 번째 부분은 필요하지 않습니다.

편집: @slm이 지적했듯이 명령 중 하나가 false를 반환하면 나머지 명령은 실행되지 않으므로 ;대신 사용하십시오. &&그에 따라 내 대답을 수정했습니다.

관련 정보