File: kill_functions.sh

package info (click to toggle)
util-linux 2.25.2-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 60,764 kB
  • ctags: 11,189
  • sloc: ansic: 103,273; sh: 18,345; makefile: 322; python: 316; xml: 232; csh: 37; sed: 16
file content (29 lines) | stat: -rw-r--r-- 820 bytes parent folder | download | duplicates (3)
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
# kill tests, or command, will not when /proc is missing.
test -d /proc || ts_skip "/proc not available"

# The test_sigreceive is ready when signal process mask contains SIGHUP
function check_test_sigreceive {
	local rc=0
	local pid=$1

	for i in 0.01 0.1 1 1 1 1; do
		if [ ! -f /proc/$pid/status ]; then
			# The /proc exists, but not status file. Because the
			# process already started it is unlikely the file would
			# appear after any amount of waiting.  Try to sleep for
			# moment and hopefully test_sigreceive is ready to be
			# killed.
			echo "kill_functions.sh: /proc/$pid/status: No such file or directory"
			sleep 2
			rc=1
			break
		fi
		sigmask=$((16#$( awk '/SigCgt/ { print $2}' /proc/$pid/status) ))
		if [ $(( $sigmask & 1 )) == 1 ]; then
			rc=1
			break
		fi
		sleep $i
	done
	return $rc
}