이 shutdown
명령은 타이머를 분과 시간 단위로만 설정할 수 있지만 초는 설정할 수 없어서 놀랐습니다.
매뉴얼 페이지에서
시간 문자열은 시간/분을 나타내는 "hh:mm" 형식일 수 있으며 종료 수행 시간을 지정하고 24시간 형식으로 지정됩니다. 또는 지금부터 m까지의 특정 시간을 나타내는 "+m" 구문을 사용할 수도 있습니다. "now"는 즉시 종료를 트리거하는 "+0"의 별칭입니다. 시간 매개변수가 지정되지 않으면 "+1"이 암시됩니다.
내가 하려는 것은 내 창 관리자(qtile)에 버튼을 만드는 것입니다. 이 버튼을 마우스 왼쪽 버튼으로 누른 후 5초 이내에 컴퓨터를 종료하고 싶은데 클릭을 놓치면 마우스 오른쪽 버튼으로 버튼을 누르고 이 작업을 취소하고 싶습니다.
sleep 5; shutdown now
취소하고 싶으면 안 돼요.
취소 작업을 수행하는 방법이 있습니까? 두 번째 정밀도를 갖는 종료와 유사한 프로그램이 있습니까?
답변1
Andy Dalton의 조언(질문의 설명 참조)을 따르는 것이 가장 좋은 방법입니다.
그러나 정말로 이 작업을 수행하는 프로그램을 원한다면 다음과 같이 작성하는 것이 쉽습니다.
int main(void) { sleep(5); system("shutdown -h now"); }
그것을 넣고 secondsshutdown.c
컴파일하면 gcc secondsshutdown.c -o secondsshutdown
원하는 대로 작동할 것입니다.
(이 코드는 컴파일할 때 더 이상 경고를 표시하지 않거나 옵션을 허용하도록 향상될 수 있습니다. 여기서는 그렇게 하지 않으므로 읽기가 더 쉬워집니다.)