
전원 버튼을 누르면 스크립트를 실행하고 싶습니다. 이 시나리오에서는 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
문제 해결:
재시작 후 명령어 를 이용하여 실제로 실행되고 있는지
acpid
확인한다 .acpid
pidof acpid
스크립트가 예상대로 작동합니까? 스크립트의 명령에 전체 경로 이름을 사용하십시오. 하다~ 아니다에 대해 임의의 값을 가정합니다
PATH
.위의 예에서는
/usr/bin/logger
어딘가( )에 무언가를 기록하는 쉬운 방법으로 명령을 사용했습니다/var/log/syslog
. 또는/tmp
테스트 목적으로 아래의 파일에 무언가를 쓸 수 있습니다 .일부 창 관리자가 전원 버튼을 캡처할 수도 있다고 @nathan이 보고했습니다. 전원 버튼을 무시 하도록
/etc/systemd/logind.conf
회선이 있는지 확인하는 데 도움이 될 수 있습니다 .HandlePowerKey=ignore
systemd-logind.service
답변2
기본적으로 여기에서 수행한 것과 동일한 Linux를 찾고 있습니다.https://stackoverflow.com/questions/12434863/executing-a-batch-script-on-windows-shutdown
이것이 원하는 경우 시스템이 종료될 때(또는 최대 절전 모드 또는 절전 모드로 전환될 때) 다음을 사용하여 스크립트를 실행할 수 있습니다.systemd
하부 구조.