Это будет зависеть от программного обеспечения и его конфигурации; rsyslogd
по крайней мере, версия, представленная в Centos 7, закрывает файл конфигурации после его чтения, поэтому такой инструмент, как lsof
, не откроет этот файл после запуска демона:
% sudo lsof -p `pidof rsyslogd` | perl -nle 'print for grep -f, split'
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
/usr/sbin/rsyslogd
...
Однако имя файла отображается в таблице процессов, которую затем можно найти в /etc
, так как обычно такая конфигурация скрыта:
% < /proc/`pidof rsyslogd`/cmdline tr '\0' ' ' ; echo
/usr/sbin/rsyslogd -n -f /nunca/adivinarás/esto
% sudo grep -r '/nunca/adivinar' /etc
/etc/sysconfig/rsyslog:SYSLOGD_OPTIONS="-f /nunca/adivinarás/esto"
В совершенно неизвестной системе вам может понадобиться использовать что-то вроде SystemTap или sysdig
— другими словами, средство трассировки ядра — и сообщить, какие файлы использует демон:
% sudo sysdig -p '%fd.name' 'proc.name = rsyslogd' | tee files-used
...
Затем перезапустите демон.
При отсутствии средства трассировки ядра можно отследить рассматриваемый демон с помощью пользовательского инструмента, такого как strace
или ktrace
, и, возможно, из системных вызовов выяснить, что такое файл конфигурации. Возможно, вам потребуется сравнить вывод трассировки разумно настроенной системы, чтобы выяснить, где искать прочитанный файл конфигурации.
Официальная документация здесь .
Для поддержки нескольких архитектур все закрепляемые пакеты должны указывать свою архитектуру, и для каждой архитектуры должна быть запись. Закрепление имени пакета без указанной архитектуры повлияет только на архитектуру по умолчанию (платформы ):
.Package: my-package
Pin: version /your regex here/
Pin-Priority: 1001
Записи чувствительны к пробелам -, хотя при наличии пробелов не будет сообщено об ошибках. Следующее закрепление будет молча игнорироваться:
Package: my-package:amd64
Pin: version /your regex here/
Pin-Priority: 1001
apt update
должен вызываться после обновления файла настроек для их соблюдения и после добавления дополнительных архитектур с использованием (, например)dpkg --add-architecture i386
Следующий отрывок из /etc/apt/preferences
решает поставленную задачу:
Package: my-package:amd64
Pin: version /-my-git-branch-name-/
Pin-Priority: 1001
Package: my-package:i386
Pin: version /-my-git-branch-name-/
Pin-Priority: 1001
Package: my-package:amd64
Pin: version /-develop-/
Pin-Priority: 900
Package: my-package:i386
Pin: version /-develop-/
Pin-Priority: 900