Как я могу удалить все не используемые семафоры и общая память с единственной командой в подобной UNIX системе, например, Ubuntu?
Раз уж вы упомянули, что работаете на NFS системе, есть ли у вас доступ к этим семафорам и общей памяти ? Думаю, Вы неправильно поняли, что это такое, это API код, который позволяет процессам взаимодействовать друг с другом, семафоры являются решением для предотвращения условий гонки и для взаимодействия потоков друг с другом, в простом ответе, они не оставляют следов ни на одной файловой системе.
Если только вы не используете муфту или трубу? Есть ли у вас необходимые разрешения для их удаления, почему они на NFS системе?
Надеюсь, это поможет, С наилучшими пожеланиями, Том.
Я не знаю, как удалить все одновременно, но вы можете использовать IPCS
, чтобы перечислены ресурсы, а затем использовать петлю и удалить с помощью IPCRM
. Это должно работать, но ему нужна небольшая работа. Я помню, что сделал это работать один раз в классе.
ipcs -s | grep $USERNAME | perl -e 'while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}'
или
ipcs -s | grep $USERNAME | awk ' { print $2 } ' | xargs ipcrm sem
Измените $ USERNAME на настоящее имя пользователя.