Как мы можем настроить ловушку сигнала как SIG_IGN и SIG_DFL в bash?

Возможно, tar может помочь подготовить файл со ссылками:

find . -type l > links.txt
tar cpf links.tar --files-from links.txt

А затем создать ссылки там, где это необходимо:

tar xvf links.tar
3
01.06.2018, 03:07
1 ответ

Tomé este guión:

#!/bin/bash
trap "" INT
trap - INT

Y corrió:

$ strace bash script.sh 2>&1 | grep INT

Entre la salida, veo:

read(3, "#!/bin/bash\ntrap \"\" INT\ntrap - I"..., 80) = 35
read(255, "#!/bin/bash\ntrap \"\" INT\ntrap - I"..., 35) = 35
rt_sigaction(SIGINT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f24e88f2030}, 8) = 0

Dado el sa_handler=SIG_IGNen la primera llamada a rt_sigaction()y el sa_handler=SIG_DFLen la segunda, parece que trap "" INTestá causando que bashrealmente ignore la señal, y trap - INTestá causando que restablecer al controlador predeterminado.

1
27.01.2020, 21:18

Теги

Похожие вопросы