signals

SIGPIPE 및 bash 파이프가 실패합니다.
signals

SIGPIPE 및 bash 파이프가 실패합니다.

Linux에서 SIGPIPE를 더 잘 이해하려고 노력 중입니다. 나는 이 실험을 실행했습니다: { ls -al /tmp/ ; echo "$?" 1>&2 ; } | head 그것은 141종료 프로세스에 제공되는 종료 코드라고 이해하는 것을 반영합니다 SIGPIPE . 이전에 여러 번 수행했지만 뉘앙스를 이해하지 못했고 SIGPIPE일반적으로 실행합니다. set -eEuo pipefail그래서 이해하려고 노력하고 있습니다. 파이프가 파손되어 내 코드가 항상 실패하지 않는 이유는 무엇입니까?...

Admin

SIGTSTP(Ctrl-Z)는 스크립트 명령으로 시작된 스크립트에 대해 작동하지 않습니다.
signals

SIGTSTP(Ctrl-Z)는 스크립트 명령으로 시작된 스크립트에 대해 작동하지 않습니다.

참고: stdin 및 stdout을 파일에 기록하는 명령을 script나타냅니다 .script script이 유틸리티를 사용하여 터미널의 텍스트 색상을 유지하면서 나중에 검사할 수 있도록 출력을 저장하는 스크립트를 실행하려고 합니다  . CtrlZ+ () 를 사용하여 현재 스크립트를 일시 중지하려고 하면 SIGTSTP콘솔이 인쇄되고 ^Z스크립트가 중지되지 않습니다. Ctrl그런 다음 +를 시도했습니다 .S ( SIGSTOP). 현재 실행 중인 스크립트는 정지되지만( htop모든 프로세스를 ...

Admin

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