사용자 지정 사용자 신호에 대해 프로세스가 차단되기를 원합니다. 신호가 도착하면 셸 스크립트에서 대기중인 프로세스를 깨우지 않아야합니까? 코딩 단계 만 필요하면 처리 할 수 있습니까?셸 스크립트의 신호 처리
답변
뭘 하려는지 분명하지 않지만 기본적으로 셸 스크립트 "키로거"가 백그라운드에서 듣고 사물을 기반으로 행동하기를 원합니다. 내가 옳다면 왜 그런지 묻지 않을거야. 사과하지 않으면 ;-)
하드 코어로 가고 싶다면/dev/input/event * 파일에 대해 배울 수있다. 파일 시스템과 그 파일 시스템을 따르는 방법. 당신이 정말 설치하고이 설치 시도 할 수 가고 싶은 경우, http://www.slideshare.net/rmorrill/creating-a-keystroke-logger-in-unix-shell-scripting
마지막 : 또는 당신은 키로거 및 loggin에를 만드는이 튜토리얼에서 볼 수 있었다 http://www.justhackitnow.com/2012/03/keylogger-for-linux.html
만약 당신이하고자하는 신호 전송 신호 번호 17, 당신은 사용할 수 있습니다 : 신호가 수신 될 때
trap ":" 17
sleep 1000000
trap 17
# ...what you want to happen after the signal is received...
첫 번째 trap
명령은 인용 명령 (:
)를 실행합니다. :
명령은 아무 작업도 수행하지 않습니다. 그러나 trap "" 17
을 '신호 무시 17'이라는 의미로 사용할 수 없습니다.이 신호는 원하는 것과 반대입니다.
sleep 1000000
은 CPU 리소스를 사용하지 않고 오랜 시간 동안 아무 것도하지 않는 방법입니다.
두 번째 trap
은 신호 17에 대한 신호 처리를 취소하고 기본 동작을 복원합니다.
그런 다음 신호를 받으면 실행하려는 코드를 넣을 수 있습니다.
가 대신 sleep
를 사용하는 무기한 대기 프로그램, pause
을 만들고 사용하는 것을 선호 수도 있습니다 (오히려 위험보다 신호 전에 깨어 난 sleep
은 수신). 다음과 같은 간단한 프로그램을 사용할 수 있습니다.
#include <unistd.h>
int main(void)
{
pause();
return(0);
}
자세한 내용은 일반적으로 반환되지 않습니다. 보통 pause()
이 errno == EINTR
과 함께 반환되기 전에 신호가 프로그램을 강제 종료합니다.
- 1. 셸 스크립트의 자동화 변수
- 2. 셸 스크립트의 암호 숨기기
- 3. 셸 스크립트의 문제점
- 4. tcsh 셸 스크립트의 정규식
- 5. 셸 스크립트의 타임 아웃
- 6. 셸 변수를 셸 스크립트의 인수로 전달하는 방법
- 7. 신호 처리
- 8. Emacs 쉘과 Cygwin에서의 신호 처리
- 9. 배시 셸 스크립트의 파일 게시
- 10. 셸 스크립트의 슬래시와 문자열 비교
- 11. 파일에서 셸 스크립트의 문자열 분할하기
- 12. JSON 및 셸 스크립트의 오류
- 13. 백그라운드 작업으로 실행되는 셸 스크립트의 프로세스를 스폰합니다.
- 14. GtkNoteBook 신호 처리 문제
- 15. Pylons의 신호 처리
- 16. 유닉스에서의 신호 처리
- 17. 신호 처리 (Java)
- 18. pthread 간의 신호 처리
- 19. 영구 신호 처리
- 20. 다중 신호 처리
- 21. Java에서 신호 처리 라이브러리?
- 22. MPI 신호 처리
- 23. UNIX에서의 신호 처리
- 24. matlab에서 오디오 신호 처리
- 25. python3 오디오 신호 처리
- 26. VB 디지털 신호 처리
- 27. Erlang Linux 신호 처리
- 28. 웹 프로그래머를위한 신호 처리
- 29. SIGCHLD 신호 처리
- 30. 신호 처리 결함 재정의
필요한 명령은'trap'입니다. 이것은 쉘 내장 명령입니다. 많은 "자습서"를 찾으려면 "셸 트랩 신호"를 검색하십시오. –