Отслеживайте вызовы команды

241
chalasr

Чтобы быстро объяснить цель моего вопроса, я использую Ubuntu Mate с клавиатурой Apple.
Чтобы клавиатура работала правильно, мне пришлось переназначить некоторые клавиши xmodmap, например, поменяв местами #/ @с </ >.

Пользовательская карта сделана в ~/.Xmodmapпорядке.
Чтобы загрузить его автоматически, я добавил xmodmap ~/.Xmodmapсвой .zshrc.

Но через некоторое время конфигурация xmodmap полностью стирается.
Чтобы перенастроить его, мне нужно открыть новый терминал или вручную вызвать xmodmapкоманду.

Эта проблема уже известна в gnome, и я не могу найти работающее решение, чтобы мой xmodmap всегда работал.

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

Я знаю некоторые команды, которые потенциально могут сбросить xmodmapнастройки, такие как setxkbmap.

Чтобы быть уверенным, что моя проблема проистекает из этого, я хочу, чтобы мой сеанс прослушивал эту команду ( setxkbmap), сортируя, как я знаю, когда она вызывается

Мой вопрос заключается в следующем:

Как я могу отслеживать вызовы команды (возможно, записав файл журнала, мне просто нужно знать, был ли он вызван во время сеанса)?

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

Спасибо заранее за все ответы, которые я получу.

3
Если этот вопрос не должен быть на этом обмене стека, пожалуйста, скажите мне, я немного потерян между серверными обменами стека. chalasr 8 лет назад 0
См. Http://www.shibuvarkala.com/2009/04/howto-enable-process-accounting-in.html, чтобы узнать, как включить учет процессов в Linux. Если у вас есть дополнительные вопросы, лучше использовать askubuntu.com. Barmar 8 лет назад 1

1 ответ на вопрос

1
mabagu

Maybe a shell wrapper could help you.

Rename setxkbmap to setxkbmap.bin

Then create a script named setxkbmap to sit in the same place where the original was, with the content:

echo "[$(date)] [ppid $PPID] $@" >> /var/tmp/setxkbmap.log exec setxkbmap.bin $@ 

You can log the the user id or whatever you think could be helpful