#!/bin/sh
tag=$(grep '<version>' $2 | sed 's/<version>[^-]*-\(.*\)<\/version>/\1/')
sed -i "s/<version>.*<\/version>/<version>$1-${tag}<\/version>/" $2
сохраните это как script.sh
, сделайте его исполняемым ( chmod + x script.sh
) и запустите это с:
./script.sh <new_version> pom.xml
Процессу не нужно открывать fd, чтобы использовать его.
Это работает, если родительский процесс позволяет дочернему процессу наследовать дескриптор открытого файла.
Кстати, :я бы доверился truss
и проверил /proc/<pid>/fd/
список дескрипторов открытых файлов.
Комментарии Шили точно отражают -происходящее. Я собираюсь немного расширить все же.
Дескриптор файла унаследован от zsched. Выполнение «date; pfiles» внутри цикла while true показало дескриптор файла, хотя это не позволяет ферме отслеживать один и тот же процесс в одно и то же время. Однако он показал мне, какой клиент подключался в момент возникновения ошибки.
Невозможно отслеживать сетевой адаптер в локальной зоне. Перейдя в глобальную зону, я смог отслеживать трафик, идущий на определенный порт на этом сетевом адаптере. Это позволило мне отследить проблему и определить проблему с помощью Wireshark.