36c317650a3bea9f712d4f502eedcffdda8a217b
[lhc/web/wiklou.git] / bin / ulimit5.sh
1 #!/bin/bash
2
3 if [ "$1" -gt 0 ]; then
4 ulimit -t "$1"
5 fi
6 if [ "$2" -gt 0 ]; then
7 if [ -e /sys/fs/cgroup/memory/mediawiki/job/ ]; then
8 mkdir -m 0700 /sys/fs/cgroup/memory/mediawiki/job/$$
9 echo $$ > /sys/fs/cgroup/memory/mediawiki/job/$$/tasks
10 echo "1" > /sys/fs/cgroup/memory/mediawiki/job/$$/notify_on_release
11 #memory
12 echo $(($2*1024)) > /sys/fs/cgroup/memory/mediawiki/job/$$/memory.limit_in_bytes
13 #memory+swap
14 echo $(($2*1024)) > /sys/fs/cgroup/memory/mediawiki/job/$$/memory.memsw.limit_in_bytes
15 fi
16 ulimit -v "$2"
17 fi
18 if [ "$3" -gt 0 ]; then
19 ulimit -f "$3"
20 fi
21 if [ "$4" -gt 0 -a -x "/usr/bin/timeout" ]; then
22 /usr/bin/timeout $4 /bin/bash -c "$5"
23 STATUS="$?"
24 if [ "$STATUS" == 124 ]; then
25 echo "ulimit5.sh: timed out." 1>&2
26 fi
27 exit "$STATUS"
28 else
29 eval "$5"
30 fi