1 #! /bin/sh 2 3 ################################################################################ 4 ## ## 5 ## Copyright (c) 2009 FUJITSU LIMITED ## 6 ## ## 7 ## This program is free software; you can redistribute it and#or modify ## 8 ## it under the terms of the GNU General Public License as published by ## 9 ## the Free Software Foundation; either version 2 of the License, or ## 10 ## (at your option) any later version. ## 11 ## ## 12 ## This program is distributed in the hope that it will be useful, but ## 13 ## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## 14 ## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## 15 ## for more details. ## 16 ## ## 17 ## You should have received a copy of the GNU General Public License ## 18 ## along with this program; if not, write to the Free Software ## 19 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## 20 ## ## 21 ## Author: Li Zefan <lizf (at] cn.fujitsu.com> ## 22 ## ## 23 ################################################################################ 24 25 # attach current task to memcg/0/ 26 mkdir memcg/0 27 echo $$ > memcg/0/tasks 28 29 ./memcg_test_4 & 30 pid=$! 31 sleep 1 32 33 # let $pid allocate 100M memory 34 /bin/kill -SIGUSR1 $pid 35 sleep 1 36 37 # shrink memory, and then 80M will be swapped 38 echo 40M > memcg/0/memory.limit_in_bytes 39 40 # turn off swap, and swapoff will be killed 41 swapoff -a 42 sleep 1 43 echo $pid > memcg/tasks 2> /dev/null 44 echo $$ > memcg/tasks 2> /dev/null 45 46 # now remove the cgroup 47 rmdir memcg/0 48 49