OSDN Git Service

Fulcon first commit
[fulcon/Fulcon.git] / src / driver / docker / find-proc
1 #!/bin/bash
2
3 # Copyright (C) 2015 NIWA Hideyuki
4
5
6 # check args
7 if [ $# -ne 1 ]; then
8         echo "usage: find-proc CONTAINER_NAME"
9         exit -1
10 fi
11
12 # get cgroup.procs path
13 ARG1=$1
14 CNAME=`docker ps | awk 'NR>1{n=split($0,a);print a[n],a[1]}' | grep -w "$ARG1" | awk '{print $2}'`
15 if [ x"$CNAME" == x"" ]; then
16         echo "error: can't find container:" $1
17         exit -1
18 fi
19
20 CPATH=`ls -1 /sys/fs/cgroup/cpu/system.slice/docker-${CNAME}*.scope/cgroup.procs`
21 if [ $? -ne 0 ]; then
22         echo "error: can't find container:" $CNAME
23         exit -1
24 fi
25
26 # get supervisord procs
27 INITPROCS=`ps aux | egrep -v egrep | awk '{print $2}'`
28
29 if [ x"$INITPROCS" == x"" ]; then
30         exit -1
31 fi
32
33 # search the /usr/bin/supervisord proc with container 
34 CPROC=""
35 for i in $INITPROCS
36 do
37         cat $CPATH | egrep -w $i >& /dev/null
38         if [ $? -eq 0 ]; then
39                 CPROC=$i
40                 break
41         fi
42 done
43
44 if [ x$CPROC == x"" ]; then
45         exit -1
46 fi
47
48 echo $CPROC
49
50 exit 0