Существуют некоторые реализации wall
, которые записывают в системный журнал для примерhttp://salsa.debian.org/debian/sysvinit/blob/master/src/wall.c. В это справочная страница это говорит:
For every invocation of wall a notification will be written to syslog, with facility LOG_USER and level BR LOG_INFO
Если вы не можете контролировать поведение приложения или указать ему использовать logger
вместо wall
вы можете создать оболочку wall
, которая будет запускать обычная команда wall
и используйте logger
для записи в syslog
. Ты сможешь либо создайте эту оболочку в новом каталоге, добавьте ее в свой $PATH
и перезапустите программу, которая использует wall
с новыми настройками $PATH
или, особенно если вы не можете даже перезапустить программу, замените системный -широко wall
для всех, если у вас достаточно прав для этого. В этом Например, я покажу вам, как это сделать. Сначала переименуйте существующие wall
запрограммировать наwall.orig
:
$ command -v wall
/usr/bin/wall
$ sudo mv /usr/bin/wall /usr/bin/wall.orig
Новый /usr/bin/wall
скрипт-оболочка может выглядеть следующим образом:
#!/usr/bin/env sh
# wall wrapper - run wall commands with specified arguments and write
# a notification to syslog
wall.orig "$@"
logger "wall was ran with the following options: $*, result: $?"
Не забудьте сделать его исполняемым:
sudo chmod +x /usr/bin/wall
Используйте как обычныйwall
:
$ wall "test message"
Broadcast message from ja@comp (pts/14) (Sat Sep 14 22:34:43 2019):
test message
Если у вас работает logger
и syslogd
работает, вы должны увидеть следующее сообщение регистрируется в одном из файлов в /var/log
, что syslogd
перенаправляет сообщения на:
Sep 14 22:34:43 comp ja: wall was ran with the following options: test message, result: 0
Конечно, имейте в виду, что каждый раз, когда вы будете обновлять свою систему используя встроенный -механизм обновления, возможно, что оригинальный /usr/bin/wall
Двоичный файл будет восстановлен снова.