전원 버튼을 누르면 스크립트 실행

전원 버튼을 누르면 스크립트 실행

전원 버튼을 누르면 스크립트를 실행하고 싶습니다. 이 시나리오에서는 file.sh라고 말하세요. 그래서 전원 버튼을 누르면 file.sh만 실행하고 file.sh만 실행하고 싶습니다.

내가 찾은 대부분의 솔루션은 편집과 관련이 있지만 /etc/acpi/powerbtn.sh해당 파일이 내 시스템에 존재하지 않습니다. (저는 우분투 19.04를 사용하고 있습니다.) 만들어서 표준 컨텐츠로 채워넣어 보려고 했지만 작동하지 않았습니다. 으로 키 누르는 소리도 들어봤는데 acpi_listen키를 눌렀을 때 아무 일도 일어나지 않아서 제가 잘못한 것인지, 아니면 무엇인지 모르겠습니다. xev키 이벤트를 선택했지만 전원 버튼을 눌렀을 때 아무것도 등록되지 않은 을 사용해 보았습니다 .

누구든지 이 작업을 수행하는 방법이나 내가 뭘 잘못하고 있는지 알고 있습니까?

추신: 저는 명령줄에서 수행할 수 있는 솔루션, 이상적으로는 타사 소프트웨어 없이 수행할 수 있는 솔루션을 선호합니다. 감사해요.


비슷한 질문이지만 해결책이 없습니다.

https://askubuntu.com/questions/473693/run-a-script-when-power-button-is-pushed

기본적으로 여기에서 수행한 것과 동일한 Linux를 찾고 있습니다.

https://stackoverflow.com/questions/12434863/executing-a-batch-script-on-windows-shutdown


편집: 이것은 syslog에서 얻은 것입니다.

Feb 9 13:01:01 joe-Aspire-E5-576G gnome-session-binary[1624]: Entering running state

그리고 이것은 이벤트에 있는 내 파일입니다.

event=button/power action=/home/ragnvaldr/Desktop/test/sc.sh `

답변1

귀하의 질문에 대한 답변은의 섹션 man acpid. 나는 당신의 요구에 적응할 것입니다.

  • 다음과 같은 내용으로 이름 이 root지정된 파일을 만듭니다 /etc/acpi/events/power.
event=button/power
action=/usr/bin/logger "ACPI_POWER_BTTN_TEST: %e"
  • 그런 다음 service acpid restart.

  • syslog파일을 이렇게 정리하세요/usr/bin/tail -f /var/log/syslog

  • 전원 버튼을 눌러 에서 테스트 메시지를 확인하세요 syslog.

  • 사용자 정의 스크립트를 가리키도록 파일 action=의 줄을 적절하게 변경합니다 .power

문제 해결:

  1. 재시작 후 명령어 를 이용하여 실제로 실행되고 있는지 acpid확인한다 .acpidpidof acpid

  2. 스크립트가 예상대로 작동합니까? 스크립트의 명령에 전체 경로 이름을 사용하십시오. 하다~ 아니다에 대해 임의의 값을 가정합니다 PATH.

  3. 위의 예에서는 /usr/bin/logger어딘가( )에 무언가를 기록하는 쉬운 방법으로 명령을 사용했습니다 /var/log/syslog. 또는 /tmp테스트 목적으로 아래의 파일에 무언가를 쓸 수 있습니다 .

  4. 일부 창 관리자가 전원 버튼을 캡처할 수도 있다고 @nathan이 보고했습니다. 전원 버튼을 무시 하도록 /etc/systemd/logind.conf회선이 있는지 확인하는 데 도움이 될 수 있습니다 .HandlePowerKey=ignoresystemd-logind.service

답변2

기본적으로 여기에서 수행한 것과 동일한 Linux를 찾고 있습니다.https://stackoverflow.com/questions/12434863/executing-a-batch-script-on-windows-shutdown

이것이 원하는 경우 시스템이 종료될 때(또는 최대 절전 모드 또는 절전 모드로 전환될 때) 다음을 사용하여 스크립트를 실행할 수 있습니다.systemd하부 구조.

관련 정보