Принцип ее работы прост: для каждого процесса она создает файл и вешает на него lock. Как только процесс завершается, лок пропадает. Лок также пропадает в случае внезапной смерти процесса, и нет необходимости проверять pid на существование или делать другие телодвижения. Если процесс запускается повторно, а лок-файл еще не освободился, работа скрипта прерывается и выдается сообщение в STDERR.
Категорія: FreeBSD
FreeBSD
Чтобы порт не обновлялся, в /etc/make.conf добавить
.if ${.CURDIR:M*devel/tevent}
IGNORE=yes
.endif
ПС. Подсмотрено в рассылке по freebsd.
А для пакетов так
Заморозить:
# pkg lock <pkg-name>
Разморозить:
# pkg unlock <pkg-name>
Solaris
Заморозить:
# pkg freeze <package-name>
Разморозить:
# pkg unfreeze <package-name>
Linux (Debian)
Заморозить:
# apt-mark hold <package-name>
Разморозить:
# apt-mark unhold <package-name>
Здесь будет рассказано о разных типах памяти, в разных ОС, при использовании разных диагностических утилит.
Не знаю, проявляется ли это на новых версиях ZFS, но достаточно интересный хак. И так, ситуация следующая: при замене диска в пуле, в процесс перестройки, выпал заменяемый диск. Тогда пул навсегда замирает в состоянии DEGRADED. Как быть? Вот здесь подсмотрел хак. Приведу цитатой:
echo zfs_no_scrub_io/W0t1 | mdb -kw
После этого надо дать resilver закончиться (он пройдёт достаточно быстро), и «zpool offline» сбойное устройство.
Потом поменять параметр назад:
echo zfs_no_scrub_io/W0t0 | mdb -kw
и «zpool replace» его работающим диском.
Принцип работы хака: в треде, где идёт resilver, мы пропускаем собственно часть, которая пишет данные; resilver заканчивается (естественно, на битый диск мы ничего не пишем, так что ошибок на нём не будет, но и данных тоже).
Для FreeBSD использовать соответственно
# sysctl vfs.zfs.no_scrub_io=1
и после окончанию работ выставить в 0.
FreeBSD
$ sockstat
Solaris
$ netstat -u
Linux
$ lsof -i
OpenBSD
$ fstat
# cd /usr/ports/devel/readline && LDFLAGS="-lncurses" make install clean
FreeBSD 11.x has many debugging features turned on, in both the kernel and userland. These features attempt to detect incorrect use of system primitives, and encourage loud failure through extra sanity checking and fail stop semantics. They also substantially impact system performance. If you want to do performance measurement, benchmarking, and optimization, you’ll want to turn them off. This includes various WITNESS- related kernel options, INVARIANTS, malloc debugging flags in userland, and various verbose features in the kernel. Many developers choose to disable these features on build machines to maximize performance. (To completely disable malloc debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely disable the most expensive debugging functionality run “ln -s ‘abort:false,junk:false’ /etc/malloc.conf”.)
UPD. Use WITH_MALLOC_PRODUCTION=yes in newer versions, staring 13.0
Ось так буде менше debug’u:
WITHOUT_ASSERT_DEBUG=yes
WITHOUT_LLVM_ASSERTIONS=yes
WITHOUT_TESTS=yes
WITH_MALLOC_PRODUCTION=yes
MALLOC_PRODUCTION=yes
Иногда pkg при установке/обновлении тянет столько зависимостей или начинает чудить с удалением нужных пакетов. Тогда будем применять следующий приём: скачивать (или собирать на основе порта) нужный пакет, помещать его в наш репозиторий, отключать удалённый, ставить пакет.
IPFilter
map net0 10.10.10.0/24 -> 192.168.0.2/24 round-robin
map net0 10.10.10.0/24 -> 192.168.0.3 round-robin
Iptables
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.3.0/24
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 1.2.3.0-1.2.3.4 --to 1.2.3.6-1.2.3.254
Linux
# strings –a /proc/<pid_of_the_process>/environ
FreeBSD
# procstat -e <pid_of_the_process>
Solaris
# pargs -e <pid_of_the_process>