![xdotool에 대한 킬 스위치를 만드는 방법은 무엇입니까?](https://linux55.com/image/159457/xdotool%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%82%AC%20%EC%8A%A4%EC%9C%84%EC%B9%98%EB%A5%BC%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
xdotool
나는 일부 작업을 자동화 하곤 했습니다 . 스프레드시트에서 데이터를 가져와서 모든 데이터를 수동으로 복사하여 붙여 넣을 필요 없이 웹 사이트에 "입력"하므로 수백 시간의 작업 시간이 절약됩니다. 이는 간단한 while 루프를 통해 실행되며 awk
스프레드시트에서 가져온 데이터를 사용합니다.
문제는 때때로 새로운 xdotool
Bash 스크립트를 테스트할 때나 임의의 상황에서 xdotool
사물에 큰 혼란을 일으키기 시작하고 멈추기가 어렵다는 것입니다. 터미널 창으로 다시 전환하고 CTRL+C를 빠르게 눌러야 하지만 그동안 잘못 실행될 수 있는 잠재적으로 위험한 코드를 터미널에 입력하는 등 파괴적인 작업을 수행할 수 있습니다. 실제로 내가 겪는 최악의 문제는 그것이 장악되어 사물에 대한 통제력을 다시 얻을 수 없다는 것입니다.
예를 들어 키보드에서 특정 키 조합을 누르면 즉시 실행을 중지하도록 지시하는 일종의 "킬 스위치"를 Bash 스크립트에 통합할 수 있는 방법이 있습니까?
답변1
선택한 창 관리자에서 다음 명령을 호출하는 바로가기를 만듭니다.
pkill -f xdotool
xdotool
이렇게 하면 명령줄에서 모든 프로세스가 종료되며, 이는 대부분의 사용 사례에서 충분히 정확한 킬 스위치가 되어야 합니다.
그런 다음 잠재적으로 위험한 스크립트를 실행하고 싶을 때마다 다른 셸 인스턴스에서 다음을 수행하세요.
bash -c 'while true; do xdotool ...; done'
이렇게 하면 스크립트가 통제 불가능할 때마다 바로가기를 사용하여 스크립트를 종료할 수 있습니다.
답변2
첫째, 실험 스크립트를 실행할 때 프로덕션 데이터를 수정하는 것을 허용하지 마세요. 실제 손상을 입히지 않도록 스크립트에 테스트 데이터/URL을 지정하세요.
둘째, 특정 파일이 존재하지 않는 경우에만 실행되도록 xdotool에 대한 호출을 if 문으로 래핑할 수 있습니다. xdotool의 모든 인스턴스를 중지하려면 이 파일만 생성하면 됩니다. 이것은 Perl로 작성된 예제이며 선호하는 스크립트 언어로 쉽게 번역할 수 있습니다.
runtool.pl
#!/usr/bin/perl
use strict;
my $stop_file = "/tmp/dont-run-xdotool.txt";
if (! -e $stop_file) { # run xdotool here }
exit 0;