Выполните команду для определенного вывода команды

Я интересуюсь выполнением определенной команды каждый раз любая программа, я выполняю выводы "отказ сегментации". В основном у меня есть сценарий удара, который пишет метку времени в файле журнала, и сделайте некоторый другой материал также.

Для моей курсовой работы один модуль запрашивает, чтобы мы сделали это для каждого осуществления. Уверенный я могу сделать сценарий и запустить каждую программу из сценария, но я задавался вопросом, существует ли какой-либо способ обобщить это.

То, что я хочу, действительно для любой программы, которая запущена пользователем, если произведенный содержит "отказ сегментации", выполняют команду

2
задан 16 February 2016 в 23:00

1 ответ

Статус выхода segfaulting's программы установлен на 139 Bash (таким образом, это применяется, по крайней мере, к программам, которые не определили обработчик для SIGSEV, принимающего SIGSEV при выполнении в Bash: это должно соответствовать Вашему случаю использования):

$ cat foo.c 
#include <stdio.h>

int main() {
    char *ptr = NULL;
    *ptr = 'a';
    return 0;
}
$ gcc foo.c -o foo
$ ./foo
Segmentation fault (core dumped)
$ echo $?
139

Вы могли установить PROMPT_COMMAND на что-то вроде этого в ~/.bashrc:

PROMPT_COMMAND='[ $? -eq 139 ] && printf "SIGSEV received\n"'

Изменение printf "SIGSEV received\n" к команде Вы хотите работать.

$ PROMPT_COMMAND='[ $? -eq 139 ] && printf "SIGSEV received\n"'
$ printf '\n'

$ ./foo
Segmentation fault (core dumped)
SIGSEV received
2
ответ дан 2 December 2019 в 03:49

Другие вопросы по тегам:

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