Описание тега bash-trap
Используйте этот тег для вопросов о встроенном Bash `trap`.
1
ответ
pgrep -P $$ дает несуществующий идентификатор процесса
#!/usr/bin/env bash sleep 3 & # Spawn a child trap ' pgrep -P $$ # Outputs one PID as expected PIDS=( $( pgrep -P $$ ) ) # Saves an extra nonexistant PID echo "PIDS: ${PIDS[@]}" # You can see it is the last one ps -o pid= "${PIDS[@]:(-1)}" || ec…
26 апр '15 в 18:36
5
ответов
Внешнее отключение сигналов для программы Linux
В Linux возможно ли как-то отключить внешнюю сигнализацию для программ... то есть без изменения их исходного кода? Контекст: Я вызываю C (а также Java) программу из скрипта bash в Linux. Я не хочу прерываний для моего bash-скрипта и для других прогр…
23 дек '10 в 01:57
1
ответ
Как я могу напечатать на стандартный вывод из ловушки, вызванной во время eval
Я ожидал, что следующий скрипт напечатает This is redirected to 'output'. когда я нажимаю Ctrl+C: #!/bin/bash trap_function(){ trap '' EXIT INT TERM echo "This is redirected to 'output'." touch this_will_exist } trap trap_function EXIT INT TERM eval…
04 фев '19 в 12:29
1
ответ
Как заставить ловушку RETURN в bash сохранить код возврата?
Ниже приведена упрощенная схема сценария, который я пишу. Программа должна принимать параметры по-разному, так что есть несколько функций. Проблема состоит в том, что загрузка цепочки возвращаемого значения из более глубоких функций прерывается в ло…
06 апр '16 в 05:50
3
ответа
Почему мой bash-скрипт так долго реагирует на kill, когда работает в фоновом режиме?
(Вопрос пересмотрен, теперь, когда я больше понимаю о том, что на самом деле происходит): У меня есть скрипт, который работает в фоновом режиме, периодически выполняет некоторую работу, а затем спит в течение 30 секунд: echo "background script PID: …
11 дек '13 в 07:46
1
ответ
bash trap не работает для SIGTERM или SIGKILL
У меня есть это: trap on_ql_trap EXIT; trap on_ql_trap INT; trap on_ql_trap TERM; echo "pid that called trap: $$" который, вероятно, может быть превращен в стенографию: trap on_ql_trap EXIT INT TERM; echo "pid that called trap: $$" когда я убиваю пр…
04 мар '18 в 00:25
1
ответ
bash shell: может ли control-c заставить shell писать пустой файл?
У меня есть скрипт оболочки bash. Он записывает в текстовый файл. Большинство из них работает, если я остановлю скрипт с помощью control-c на командном уровне. Иногда файл, который был записан в такой как echo "hello world" >myfile.txt окажется п…
13 май '13 в 04:54
1
ответ
Как снова установить ловушку bash в коде ловушки?
У меня есть функция bash, которая вызывается должна вызываться ловушкой EXIT после первого вызова. Функция снова устанавливает ловушку, чтобы срабатывать сразу же после выхода из функции. echo 0 > .i function launchNextExperiment { ( # Run in nes…
08 окт '10 в 12:54
2
ответа
Команда cp: не найдена
Я пытаюсь скопировать один файл в другой каталог и получаю сообщение об ошибке во время вызова прерывания. Сценарий: #!/bin/bash PATH=~/MkFile/ exitfn () { trap SIGINT # Resore signal handling for SIGINT echo ; echo 'Called ctrl + c ' # Growl at use…
13 авг '14 в 08:52
2
ответа
Приглушить ловушку в сценарии оболочки
У меня есть сценарий оболочки, который я использую для вызова многих сценариев Python. Я добавил ловушку в свой сценарий оболочки, чтобы поймать Ctrl+ C и выйти. Но если скрипт Python запущен, и я нажал Ctrl+ C, он также показывает блок скрипта Pyth…
28 ноя '16 в 13:53
2
ответа
Проверьте, установлена ли ловушка в Bash
Есть ли способ проверить, что trapбыли установлены (в текущем сеансе или сценарии) в Bash? В идеале я бы хотел получить список сигналов, которые имеют trap назначен им, но если это невозможно, я могу просто проверить каждый сигнал в отдельности.
13 сен '16 в 18:56
1
ответ
Bash: ловушка ERR не работает, когда используется оператор трубы
Я пытаюсь записать все, что выходит из stdout и stderr, в файл журнала и при этом сохранить консоль. Для этого я просто добавил: |& tee -a log_file.log к каждой команде.Тем не менее, я также хочу запустить пользовательскую команду, если во время…
18 дек '14 в 12:39
1
ответ
Баш ловит, захватывает и передает их в качестве аргументов для той же функции
Я разрабатываю скрипт, который управляет некоторыми ловушками. В начале я управлял только INT и SIGTSTP с этим кодом, и он работает очень хорошо: #!/bin/bash function capture_traps() { echo -e "\nDoing something on exit" exit 1 } trap capture_traps …
16 дек '16 в 15:54
2
ответа
Можно ли определить * какой * сигнал прерывания в bash?
Возможный дубликат: Определение имени полученного сигнала в скрипте bash. При использовании чего-то вроде trap func_trap INT TERM EXIT с: func_trap () { ...some commands... } Есть ли способ в функциональном блоке определить, какая ловушка вызвала ег…
01 фев '10 в 09:23
1
ответ
Почему моя ловушка не работает?
Я написал ниже сценарий: #!/bin/bash sleep 15 function_signalr() { date date | awk '{printf "%-15s\n", $2}' } trap "function_signalr" 10 Когда я запускаю процесс с помощью "process &", он запускается, предоставляется PID. Я убиваю -10 PID, но моя ло…
06 апр '14 в 13:13
1
ответ
$? внутри ловушки Баш
Из скрипта bash я пытаюсь обработать ошибки сегментации из программы на C++. Я прочитал это, используя trap на SIGCHLD может быть использован для этой цели. Внутри ловушки я должен быть в состоянии проверить $? получить код возврата из программы. См…
29 июл '13 в 21:00
2
ответа
Как отправить сигнал SIGINT из скрипта в скрипт? BASH
Я хочу перехватить сигнал, посылаемый из Script-A.sh в Script-B.sh, поэтому в Script-A.sh я использую команду (Отправить SIGINT на Script-B.sh) убить -2 $PID_Script-B.sh А в Script-B.sh я ловлю сигнал и вызываю функцию Clean ловушка "Чистая" 2 Это н…
26 мар '10 в 16:32
2
ответа
Как получить исходный вызывающий льнено при выполнении функции, возвращающей ненулевое значение
Я создал скрипт func.sh, содержащий: 1. function testfunc () 2. { 3. echo "--> TESTFUNC CALLED" 4. caller 0 5. 6. # here I mimic that something went wrong 7. echo "now I return a non-zero value" 8. return 1 9. } Затем я сделал скрипт main.sh 1. #…
03 ноя '12 в 20:34
0
ответов
Почему вызывающий bash печатает разные льняные номера в отладочной ловушке
Я пишу пользовательский отладчик для скриптов bash, используя ловушку DEBUG. Я наткнулся на отрицательные номера строк при печати трассировки стека с помощью вызывающей стороны. Кажется, что вывод вызывающей стороны отличается, когда я вызываю его в…
09 окт '14 в 08:46
1
ответ
Если вы `source` другой файл, `trap INT`, определенный ранее, не будет работать?
Если я размещу это наверху сценария Bash, Control+C не будет работать. exit-function() { echo "Hey hey!" } trap exit-function INT Но если я поставлю это через несколько строк, то Control + C будет в ловушке. ОБНОВЛЕНИЕ: Если он размещен после source…
24 дек '10 в 09:07