У меня уже несколько дней возникает такая же проблема на моем хосте KVM / QEMU, на котором запущен Debian 8.6 с ядром 3.16.0-4-amd64. { {1}} Это часть моего журнала:
Jan 01 13:07:42 debbi3 kernel: Uhhuh. NMI received for unknown reason 20 on CPU 0.
Jan 01 13:07:42 debbi3 kernel: Do you have a strange power saving mode enabled?
Jan 01 13:07:42 debbi3 kernel: Dazed and confused, but trying to continue
Jan 02 10:48:58 debbi3 kernel: Uhhuh. NMI received for unknown reason 30 on CPU 0.
Jan 02 10:48:58 debbi3 kernel: Do you have a strange power saving mode enabled?
Jan 02 10:48:58 debbi3 kernel: Dazed and confused, but trying to continue
Это началось после установки BOINC (текущая задача - гипотеза Коллатца). В настоящее время я разрешаю BOINC захватить 99% процессора.
Итак, я предполагаю, что причина этих сообщений заключается в том, что ЦП перегружен и не получает достаточно времени для правильной обработки (аппаратных) прерываний. В вашем конкретном случае виновником может быть какой-то другой процесс или внешняя причина. YMMV.
Если вы хотите проверить, что существует определенная в настоящее время (или, по крайней мере, потенциально отмеченная для автозагрузки) функция с именем foo
, независимо от того, может ли она также быть доступна встроенным / исполняемым / ключевым словам / псевдонимом name, вы можете сделать:
if typeset -f foo > /dev/null; then
echo there is a foo function
fi
Хотя обратите внимание, что если есть ключевое слово или псевдоним с именем foo
, он будет иметь приоритет над функцией (если не заключен в кавычки).
Вышеупомянутое должно работать в ksh
(откуда оно взято), zsh
и bash
.
Это чистый POSIX, поэтому он должен работать во всех оболочках POSIX.
foo()
{
echo "bar"
}
if type 'foo' 2>/dev/null | grep -q 'function'
then
echo 'function exists'
fi