Страница 1 из 1

du в корку

Добавлено: 2009-04-02 9:57:54
manefesto
решил посчитать сколько у меня накачал cvsupd

Код: Выделить всё

[12:55]|root@server.manefesto| Video/>du -sh /home/cvsupd/
^\Quit (core dumped)
потом решил прервать и случайно(хз как), нажал сочетание клавишь ctrl+\ затем shift и у меня du упал в корку
Почему так ??

Re: du в корку

Добавлено: 2009-04-02 13:41:51
Гость
manefesto писал(а):упал в корку
Почему так ??
открой signal(3) и найди Default Action для сигнала SIGQUIT. Отсюда и вывод Quit (core dump), а не Segmentation fault (core dump)
manefesto писал(а):^\Quit (core dumped)
По дефолту посылка SIGQUIT процессу на управляемом терминале происходит по нажатию ^\ (Ctrl+\). Посмотреть все остальные комбинации можно через stty -a, переназначить тоже

Код: Выделить всё

$ stty -a
...
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>; eol2 = ^@;
        erase = ^H; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;

$ stty quit ^L

$ du -sh /usr/src
^LQuit (core dumped)
Не правда ли удобный способ остановить/получить корку программы прямо посреди выполнения? Нет..., конечно, всегда можно из другого терминала отправить сигнал с помощью kill(1)...

Код: Выделить всё

$ du -sh /usr/src &

$ jobs
[1] + Running                 du -sh /usr/src

$ kill -SEGV $(jobid %1)
$
[1]   Segmentation fault (core dumped) du -sh /usr/src

Re: du в корку

Добавлено: 2009-04-02 14:11:55
hizel
клас! ;]

Re: du в корку

Добавлено: 2009-04-02 22:32:28
gonzo111
может кто в
www.lissyara.su —> документация —> man
положит
так сказать хозяйке на замететку :smile:

Re: du в корку

Добавлено: 2009-04-03 1:38:17
gloom
в вики тоже не помешало...

Re: du в корку

Добавлено: 2009-04-03 8:10:18
Alex Keda
вот уж в вики - любой пошёл бы да сделал.
а сидеть мусолиь кто-бы, да если бы - все могут =)

Re: du в корку

Добавлено: 2009-04-03 9:23:22
_Andy
Сделайте уже кто-нибудь.

Re: du в корку

Добавлено: 2009-04-03 9:39:43
terminus
Давно пора уже сделать! Кто пойдет? :smile:

Re: du в корку

Добавлено: 2009-04-03 10:13:34
Alex Keda
terminus писал(а):Давно пора уже сделать! Кто пойдет? :smile:
иди.
если что - скажешь я разрешил.

Re: du в корку

Добавлено: 2009-04-03 10:32:48
_Andy
terminus писал(а):Давно пора уже сделать! Кто пойдет? :smile:
Да, и перевод хендбука туда же положи.

Re: du в корку

Добавлено: 2009-04-03 11:44:07
terminus
[гнилая отмазка]

http://www.freebsd.org.ua/mailarchive/f ... 00245.html
Когда рак на горе сви... то есть, когда в листе товарищи из frdp проснуться, то первая "порцыйа" пойдет, а потом остальное запереведем. :"":

[/гнилая отмазка]

Re: du в корку

Добавлено: 2009-04-03 11:46:21
_Andy
terminus писал(а):http://www.freebsd.org.ua/mailarchive/f ... 00245.html
Когда рак на горе сви... то есть, когда в листе товарищи из frdp проснуться, то первая "порцыйа" пойдет, а потом остальное запереведем. :"":
Они на тебя забьют, хотя я был бы рад ошибаться.

Re: du в корку

Добавлено: 2009-04-03 11:47:04
terminus
lissyara писал(а):иди.
если что - скажешь я разрешил.
А что сразу йа :oops: gonzo111 хотел... :crazy:

Re: du в корку

Добавлено: 2009-04-03 11:51:49
terminus
_Andy писал(а):Они на тебя забьют, хотя я был бы рад ошибаться.
Йа тогда в офицальную рассылку буду спамить пока не закомитят.
Если честно то пока времени нет дальше переводить. Я сам малость забил...

Re: du в корку

Добавлено: 2009-04-06 11:02:59
zingel
Не хочешь, не нужно.

Re: du в корку

Добавлено: 2009-04-06 11:47:29
gonzo111
Я с английским плохо дружу :oops: , а безе перевода как то не культурно копипастить :pardon:

Re: du в корку

Добавлено: 2009-04-13 21:40:02
Гость
Гость писал(а):По дефолту посылка SIGQUIT процессу на управляемом терминале происходит по нажатию ^\ (Ctrl+\). Посмотреть все остальные комбинации можно через stty -a, переназначить тоже
Отключить обработку спецсимволов можно если вырубить флаг ISIG (см. termios(4))

Код: Выделить всё

pts/9$ stty -isig
pts/9$ du -sh /usr/src
^\^\^\^\^\^\^\^\^\^\

^C^C^C^C^D^D

^C^D^T
^C^C^T^T
но мне чаще приходится включить обработку ISIG после некорректно убитого приложения, после коего не обрабатывается Ctrl+C (interrupt), Ctrl+Z (suspend)

Код: Выделить всё

pts/9$ stty isig
впрочем, я чаще просто копирую все настройки tty из соседнего терминала

Код: Выделить всё

pts/9$ stty -gf /dev/pts/5 | xargs -o stty
где pts/5 - номер tty с корректными настройками. После сего даже reset(1) не надо запускать.

ps, но лучше все-таки не использовать SIGKILL на ncurses приложениях ;)