Существует ли способ пихнуть панику ядра на экран?

rsync делает то, что Вы хотите, если Вы даете -a. На самом деле Вам только нужно -o и -g, но так как Вы пытаетесь сохранить это очень, Вы, вероятно, хотите остальную часть что -a обеспечивает.

Очевидно, Вы должны базироваться полномочия на удаленной стороне для этого для работы. Это означает, что необходимо войти в систему как корень в удаленной системе если rsyncing по SSH. Если Вы работаете rsync как демон в удаленной системе вместо этого, это должно работать как корень.

5
20.12.2018, 22:59
5 ответов

Linux действительно выводит панику на экран... в зависимости от Вашего определения экрана.

То, что на самом деле делает Linux, вывести к системной консоли. Часто это - экран, но может быть последовательной консолью (или в другом месте) вместо этого.

Однако большинство людей работает X на их рабочих столах. Что означает, что консоль не находится на экране, кадровый буфер. У Вас должен был бы быть дамп Linux к кадровому буферу в этом случае, и я подозреваю, что это действительно, что Вы ищете.

Удачный для Вас, существует проект, работающий над этим законченным в Ubuntu. Я не знаю, как далеко вдоль проекта, но это выглядит многообещающим, и это - то, где необходимо запустить.

8
27.01.2020, 20:34
  • 1
    На самом деле Linux выводит все к системному журналу, и системный журнал улаживает его. Взгляните в /etc/[r]syslog.conf - панический материал является приоритетом emerg и это переходит в * - весь активный ttys. Но Вы могли отправить, это к чему-либо (угадайте что /dev/xconsole для?) –  goldilocks 19.09.2013, 23:08

Отказ от ответственности: Я отправил этот ответ, потому что Вы сказали, что хотели носатый. Если Вы будете говорить о реальной панике ядра и не только сообщениях об ошибках и т.п., то это не будет работать, потому что, ну, в общем, ядро будет слишком занято, паникуя, чтобы Вы смогли сделать что-либо еще.


conky должен быть в репозиториях Вашего распределения, так установка, это просто. После того как Вы сделали так, необходимо будет создать a ~/.conkyrc файл. Мой является отчасти сложным, это - минимальная работа .conkyrc это отображает последние 8 строк dmesg приятно отформатированным способом:

    double_buffer yes
     background yes
    update_interval 1
    total_run_times 0
    own_window yes
    own_window_type desktop
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    minimum_size 230 5
    maximum_width 230
    gap_x 1365
    gap_y 40

TEXT

${execpi 3 dmesg |tail -n8}

Это выглядит довольно ужасным, хотя, таким образом, у меня есть сценарий, который форматирует вывод, сворачивая длинные линии и делая отступ для группировки строк из того же сообщения вместе. Для использования его сохраняют сценарий ниже как что-то как ~/bin/conkyLogging, сделайте это исполняемым файлом chmod a+x ~/bin/conkyLogging и изменение та последняя строка к

 ${execpi 3 dmesg |tail -n8 | /home/USERNAME/scripts/conkyLogging.pl} 

Сценарий:

#!/usr/bin/env perl
my $lim=32;
my @a;
while(<>){/.*?\]\s*(.+)$/;
 push @a,$1;
}
my $k;
for($n=$#a;$n>=0; $n--){
    $_=$a[$n];
    @c=split(/[\s]+/);
    @b=split(//);
    my $k=0;
    my $kk=0;
    print "    ";
    for($i=0;$i<=$#b; $i++){
    $_=$b[$i];
    if (/^\s+$/){
        $k+=length($c[$kk+1]);
        $kk++ ;
    }
    if($k>$lim){
        s/([=,\-\s])/$1\n\t  /;
        $k=0;
    }
    print STDOUT;
    }
    print STDOUT "\n";
}

Для получения дополнительной информации о различном conky переменные и как настроить Ваш .conkyrc посмотрите здесь и здесь.

2
27.01.2020, 20:34
  • 1
    я сказал бы, что, если намерение состоит в том, чтобы обработать панику ядра всегда, например, отобразив его на X11 (который является, по-видимому, что OP пытается сделать), затем что-либо в пространстве пользователя не добьется цели. –  Martin von Wittich 19.09.2013, 20:40
  • 2
    Поскольку ядро паникует, это едва применимо, я боюсь - после того как Вы получаете панику, пользовательские процессы останавливаются. Некоторые подсистемы ядра заканчивают то, что они делают, но это - насколько это добирается - паника ядра является тупиком. –  peterph 19.09.2013, 20:42
  • 3
    @MartinvonWittich, если это - надлежащая паника ядра, я предполагаю, что он не будет, но нет никакого пути (AFAIK) для отображения этого, так как Вы будете пожарены так или иначе. –  terdon♦ 19.09.2013, 20:42
  • 4
    @peterph да, но OP, требуемый носатый (см. мои комментарии к вопросу). Насколько я знаю, если у Вас будет паника ядра, то необходимо будет перезагрузить и нет никакого способа отобразить ее так, я полагаю, что OP означает что-то другое, чем добросовестная паника ядра. –  terdon♦ 19.09.2013, 20:43
  • 5
    @terdon: да, в пространстве пользователя нет никакого пути. Можно было изменить ядро, хотя так, чтобы оно, по крайней мере, переключилось на VT прежде, чем отобразить панику, как Windows, делает это с bluescreens. Возможно, Linux на самом деле делает, чем... Я не знаю, я не видел панику ядра в долгое время :) –  Martin von Wittich 19.09.2013, 20:45

По-видимому, толчком причина на экран, который Вы имеете в виду, вынуждает ядро вывести информацию об экране.

Я не эксперт безусловно, но насколько я знаю, нет никакого пути. Когда паника ядра происходит, она выводит информацию к консоли и затем отказывает. Это означает, что нет никакого способа сделать что-либо после паники, потому что ничто не работает больше.

Если Вы находитесь на фактическом tty (не xterm), я полагаю, что Вы будете видеть информацию. Но иначе Вам не повезло. Что "ядро является паническим"? кажется, имеет некоторую информацию об этом.

1
27.01.2020, 20:34

При испытании паники больше, чем просто очень seldomly вероятно, лучший выбор имеет другого (вероятно, низкая мощность) устройство, подключенное к нему и журнал к нему или через последовательный кабель или через netconsole. Netconsole имеет очевидное преимущество использования другого устройства, которое уже работает так или иначе (можно зарегистрироваться даже к домашнему маршрутизатору в случае необходимости).

0
27.01.2020, 20:34

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

У демона системного журнала есть конфигурационный файл в /etc. Традиционно, это syslog.conf, но для альтернативы rsyslogd (используемый с современным .rpm основывал дистрибутивы), например, это rsyslog.conf. Не добираясь также в то, как эта конфигурация работает, несколько директив обычно там достойны рассмотрения здесь:

# Emergencies are sent to everybody logged in.
*.emerg                         *

# Log all kernel messages to the console.
kern.*                                                 /dev/console

Первый - то, почему определенные серьезные ошибки появятся на всем ttys. Однако это не включает терминалы GUI, означая, что Вы ничего не будете видеть в X.

Второй отправляет все сообщения от ядра до /dev/console*, который обычно синонимичен с /dev/tty0, который, как обычно понимают, является "текущей виртуальной консолью", хотя это все еще не будет консолью GUI.

Можно установить устройство для использования в качестве консоли с параметром начальной загрузки ядра, например, console=/dev/tty6. Можно, вероятно, получить текущее устройство с cat /sys/devices/virtual/tty/console/active.

Существует почтенное (как в, предынтернет-эра) названное приложение для GUI xconsole который отобразит сообщения, отправленные в /dev/console. Это не использует современные комплекты программ системного обеспечения, к сожалению, и если Вы хотите настроить его, необходимо использовать Xresources файл:

XConsole*text.width:          1000
XConsole*text.height:         300
XConsole*background:          #cccccc
XConsole*font:                -adobe-helvetica-medium--normal-*-14-*-*-*-*-*-iso8859-1

Вам, вероятно, будет нужен, по крайней мере, шрифт для создания этого читаемым.

Это позволит Вам видеть, что паника ядра передает то же, как Вы были бы в VT. Если Вы помещаете его на некоторый стол дальнего угла, и система замерзает, существует хороший шанс, который можно все еще переключить на него (хотя, Вы могли также попытаться переключиться на VT или уничтожить X).

Вы могли также указать FIFO или сокет в syslog.conf и реализовать Ваш собственный метод получения сообщений в X.

*Debian произошел, системы также имеют a /dev/xconsole на устройство и это сошлются в их syslog.conf.

0
27.01.2020, 20:34

Теги

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