signals

siglongjmp가 여러 신호 처리기와 함께 작동하는 방법
signals

siglongjmp가 여러 신호 처리기와 함께 작동하는 방법

나는 팔로우하고 있다APUE 교과서siglongjump(),이코드 조각이것은 나를 혼란스럽게 한다. pr_mask()차단된 신호를 인쇄하는 기능입니다. 이에 따르면 USR1신호가 오면 프로세스 마스크에 추가되며 이것이 핸들러이다. static void sig_usr1(int signo) { time_t starttime; if (canjump == 0) return; /* unexpected signal, ignore */ pr_mask("starti...

Admin

프로세스가 SIGTERM을 수신하면 하위 프로세스는 어떻게 되나요?
signals

프로세스가 SIGTERM을 수신하면 하위 프로세스는 어떻게 되나요?

프로세스가 SIGTERM을 수신하고 하위 프로세스(예: /bin/sh 명령을 실행하는 JVM)를 생성할 때 어떤 일이 발생하는지 알고 싶습니다. 어떤 종류의 자동화가 있습니까, 아니면 상위 프로세스가 종료되고 하위 프로세스도 SIGTERM 신호를 수신합니까? 종료되나요? ...

Admin

하위 프로세스가 충돌했음을 상위 프로세스에 알리기 위해 (상위 프로세스?)에 신호를 보내는 방법
signals

하위 프로세스가 충돌했음을 상위 프로세스에 알리기 위해 (상위 프로세스?)에 신호를 보내는 방법

이것이 최선의 방법은 아닐 수도 있지만 시도해 보고 있습니다. 다음과 같이 docker와 함께 사용하는 Entrypoint.sh 파일이 있습니다. ENTRYPOINT ["./entrypoint.sh"] 이것은 Entrypoint.sh입니다. #!/usr/bin/env bash args="$@" echo "docker container arguments: '$args'" "${args}" || { echo "Application exited with a non-zero code: '$?'...

Admin

프로세스가 중단되는 원인은 무엇입니까?
signals

프로세스가 중단되는 원인은 무엇입니까?

쉘 세션에서 발췌한 내용은 다음과 같습니다. brandon@Air ~ % brew upgrade rust ... ==> Pouring rust--1.75.0.arm64_monterey.bottle.tar.gz [1] + 76816 suspended (signal) brew upgrade rust brandon@Air ~ % fg [1] + 76816 continued brew upgrade rust [1] + 76816 suspended (signal) brew upgrade rus...

Admin

Bash에 의해 시작된 하위 프로세스를 쉽게 종료할 수 없습니다.
signals

Bash에 의해 시작된 하위 프로세스를 쉽게 종료할 수 없습니다.

일반적으로 하위 프로세스는 악몽이라고 생각합니다. 다음과 같은 경우: #!/usr/bin/env bash ( proc_one ) & ( proc_two ) & wait 이 스크립트를 Ctrl-C로 눌러도 백그라운드에서 계속 실행되어 터미널에 입력하는 모든 내용이 중단됩니다. 결국 터미널을 닫았습니다. 터미널을 통해 하위 프로세스를 쉽게 종료할 수 있는 모드가 있나요? ...

Admin

처리되지 않은 신호의 코드 번호는 무엇을 의미합니까?
signals

처리되지 않은 신호의 코드 번호는 무엇을 의미합니까?

저는 FPGA의 맞춤형 디자인에서 실행되는 RISC-V Ariane CVA6 프로세서에서 맞춤형 GNU/Linux 배포판을 실행하고 있습니다. 메모리 매핑된 I/O 레지스터에서 데이터를 읽으려고 하면 버스 오류가 발생합니다. 매핑과 주소가 올바른지 확인했습니다. 실행하면 dmesg처리되지 않은 신호 7 코드 0x2 오류가 표시됩니다. 처리되지 않은 신호번호를 확인했어요여기하지만 코드 0x2에 대한 참조를 찾을 수 없습니다. 어떤 아이디어가 있나요? ...

Admin

Perl의 `kill`은 예상치 못한 `$! == Errno::EINTR`을 사용합니다.
signals

Perl의 `kill`은 예상치 못한 `$! == Errno::EINTR`을 사용합니다.

TCP 연결을 처리하기 위해 하위 프로세스를 포크하는 네트워크 데몬을 작성했습니다. SIGINT기본 프로세스 의 각 하위 프로세스에 대해 하나씩 트리거하여 kill일부 최종 통계를 정리하고 수집합니다. 거의 모든 경우에 잘 작동하며 하위 프로세스가 매우 빠르게 종료됩니다. 그러나 때로는 하위 프로세스가 짧은 시간 초과(예: 5초) 내에 종료를 거부하는 경우도 있습니다. 당시 무슨 일이 있었는지 전혀 모르므로 상황을 진단하기 위해 자세한 출력을 추가했습니다. netcat연결을 열고 프로세스를 일시 중지...

Admin

수면의 다양한 행동을 설명하고 방해를 받았을 때 기다리는 방법
signals

수면의 다양한 행동을 설명하고 방해를 받았을 때 기다리는 방법

나는 sleep과 사이의 미묘함을 이해하려고 노력하고 있습니다 sleep & wait. 스크립트를 실행하면test.sh #!/bin/bash sleep 10000 한 터미널과 ps -aef --forest다른 터미널에서 보면 myuser 14355 14113 0 23:26 pts/5 00:00:00 | \_ /bin/bash ./test.sh myuser 14356 14355 0 23:26 pts/5 00:00:00 | ...

Admin

ctrl+c를 올바르게 처리하기 위해 내 쉘을 얻으려고합니다.
signals

ctrl+c를 올바르게 처리하기 위해 내 쉘을 얻으려고합니다.

Ctrl C를 누를 때 실행 중인 프로그램이 SIGINT를 수신하도록 쉘이 설정되는 방법을 이해하려고 노력하고 있지만 bash를 실행하고 내부에서 다른 프로그램을 실행한 다음 Ctrl + C를 누르면 쉘은 SIGINT를 수신하지 않습니다. 실행 중인 프로그램이 중지되지만 bash는 중지되지 않습니다. 이는 다른 쉘에서 bash를 시작할 때도 적용됩니다. 나는 아무 키나 누르면 서브루틴을 실행하는 나만의 특수 쉘 프로그램을 만들어 보았습니다. #! /usr/bin/env bash set -e whi...

Admin

SSH를 통해 실행될 때 백그라운드 프로세스는 SIGINT에 의해 종료되지 않습니다.
signals

SSH를 통해 실행될 때 백그라운드 프로세스는 SIGINT에 의해 종료되지 않습니다.

ssh, nohup, bg 등을 시도하고 있습니다. 다음을 사용하여 원격으로 테일 프로세스를 시작했습니다. $ ssh remotehost '{ nohup tail -f ut.log &> /dev/null < /dev/null &} && echo $!' 예상대로 백그라운드 테일 프로세스를 성공적으로 시작하고 pid를 인쇄하고 종료합니다. 그런 다음 원격 시스템에 로그인하고 pid를 확인합니다. $ ps -o pid,tid,ppid,pgid,sid,class,ni...

Admin

EINTR을 유발하는 신호는 어디에서 오는가?
signals

EINTR을 유발하는 신호는 어디에서 오는가?

나는 이것이 EINTR소위 인터럽트 가능한 시스템 호출에 의해 반환될 수 있는 오류라는 것을 알고 있습니다. 내 질문은 EINTR을 유발하는 신호가 어디에서 오는가입니다. Python으로 작업할 때 종종 이 문제에 직면합니다 fnctl. ctrl+ 와 같은 인터럽트 명령을 실행하지 않았습니다 c. ...

Admin

너무 오래;
signals

너무 오래;

저는 350MB RAM과 2GB 스왑 공간을 갖춘 가상 머신에서 Vagrant를 통해 FreeBSD 12를 실행하고 있습니다. 내가 실행하면 : perl -e '$a="x"x200_000_000;sleep 1000' & sleep 10 perl -e '$a="x"x200_000_000;sleep 1000' & sleep 10 perl -e '$a="x"x200_000_000;sleep 1000' & sleep 10 perl -e '$a="x"x200_000_000;sleep 10...

Admin

Ctrl-Z를 받은 후에도 프로세스가 중지되지 않습니다.
signals

Ctrl-Z를 받은 후에도 프로세스가 중지되지 않습니다.

신호 처리기에 대해 배우고 있습니다. 나는 수신하는 모든 신호를 처리하고 인쇄하기 위해 간단한 Python 스크립트를 작성했습니다. 그런 다음 원격 시스템에서 스크립트를 실행합니다 ssh. 그런 다음 Ctrl C 신호를 보내면 원격 프로세스가 예상대로 중단됩니다. 대신 Ctrl Z 신호를 보내면 원격 프로세스가 예상대로 중지되지 않습니다. 첫째, Ctrl Z가 원격 스크립트에 도달하지 못할 수도 있다고 생각했습니다. 그러나 사용자 정의 핸들러를 연결하면 Ctrl Z가 전송되는 것을 감지합니다. 그런 ...

Admin

메모리 보호 키: pkey0에 쓰기가 금지되면 예외 처리기가 충돌합니다.
signals

메모리 보호 키: pkey0에 쓰기가 금지되면 예외 처리기가 충돌합니다.

배경: MPK(메모리 보호 키) 및 보호 키 레지스터 PKRU를 사용하는 x86/linux의 메모리 보호 도메인을 기반으로 하는 프로세스 내 격리입니다. 설정: 프로그램은 먼저 새로운 보호 키와 관련 메모리를 할당하는 관리자 코드를 실행하고 사용자 스택 포인터를 해당 메모리로 이동합니다. 이는 해당 메모리에서만 작동할 수 있으므로 사용자 코드로 전환하는 것을 의미합니다. 사용자 코드로 인해 예외가 발생하는 경우 신호 처리기가 실행을 관리자에게 다시 전달하도록 하고 싶습니다. 다음을 수행해야 합니다. ...

Admin

ctrl-z와 같은 명령을 보내 루프 이후에 루프 쉘 스크립트를 일시 중지한 다음 계속 실행하려면 어떻게 해야 합니까?
signals

ctrl-z와 같은 명령을 보내 루프 이후에 루프 쉘 스크립트를 일시 중지한 다음 계속 실행하려면 어떻게 해야 합니까?

파일을 반복하는 쉘 스크립트가 있습니다. 각 파일을 처리하는 데 몇 시간이 걸릴 수 있습니다(CPU/GPU 제한). 때로는 파일 처리가 완료되면 루프 끝에서 실행을 일시 중지하고 나중에 다시 시작할 수 있기를 원합니다. Ctrl-z를 누른 다음 을 사용하여 일시 중지하는 방법과 유사 fg하지만 이전에 현재 루프를 완료하기를 원합니다. 실제로 배경을 일시 중지/입력합니다. 기본적으로 나는 스크립트가 ctrl-z(또는 이와 유사한 것)를 수신할 때 중지하기 전에 특정 줄에 도달할 때까지 기다리기를 원합니...

Admin