This file is indexed.

/usr/lib/mpich/sbin/cleanipcs is in mpich-bin 1.2.7-10ubuntu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! /bin/sh
# courtesy of Jarek Nieplocha, to clean ipc's
# Modified by Bill Gropp to apply only to calling user
ipccmd=ipcrm
for arg in "$@" ; do
   case $arg in
	-help|-u|-us*|-h)
	echo "cleanipcs [-show] [-echo]"
	exit 1
	;;
	-echo)
	set -x
	;;
	-show)
	ipccmd="echo ipcrm"
	;;
	*)
	if [ -n "$arg" ] ; then
  	    echo "Unrecognized argument $arg"
	    exit 1
	fi
	;;
   esac
done
#
# LINUX uses an incompatible form of the ipcrm command!  Try to detect this
# An earlier version looked at the output of ipcrm, but that output
# keeps changing.  The following code from Ralf Wildenhues attempts to 
# use the Linux /proc interface.
#statvalue=`ipcrm 2>&1`
#if [ $? != 0 ] ; then 
#    if [ "$statvalue" = 'usage: ipcrm [shm | msg | sem] id' ] ; then
#        UseLinux=1
#    fi
#fi
#if [ $UseLinux = 0 ] ; then
if [ x`uname -s` = xLinux ] ; then
    # try to use /proc interface if possible
    # and hope it does not change too often
    if [ -r /proc/sysvipc/shm  ] ; then
    	cat /proc/sysvipc/shm \
	| gawk '{if ($8 == uid) printf("%s %s\n", comm, $2)}' uid=$UID comm="$ipccmd shm " \
	| sh > /dev/null
    else
	ipcs -m \
	| gawk '{if ($3 == name) printf("%s %s\n", comm, $2)}' name=$LOGNAME comm="$ipccmd shm " \
	| sh > /dev/null
    fi
    if [ -r /proc/sysvipc/sem ] ; then
    	cat /proc/sysvipc/sem \
	| gawk '{if ($5 == uid) printf("%s %s\n", comm, $2)}' uid=$UID comm="$ipccmd sem " \
	| sh > /dev/null
    else
	ipcs -s \
	| gawk '{if ($3 == name) printf("%s %s\n", comm, $2)}' name=$LOGNAME comm="$ipccmd sem " \
	| sh > /dev/null
    fi
else
    $ipccmd `ipcs | awk '{if ((($1 == "m") || ($1 == "s")) && ($5 == "'$LOGNAME'")) print sprintf("-%s %s",$1,$2) }'`
fi
#
# Here is the old LINUX code
#    #
#    # For LINUX, we need this instead:
#    ipcs -m | gawk '{if ($3 == name) printf("%s %s\n", comm, $2)}' name=$LOGNAME comm="$ipccmd shm " | sh > /dev/null
#    ipcs -s | gawk '{if ($3 == name) printf("%s %s\n", comm, $2)}' name=$LOGNAME comm="$ipccmd sem " | sh > /dev/null
#
# mpirun could call this for systems that use SYSV shared memory features,
# just to keep them friendly.