add run_in_cgroup script for other easy use

This commit is contained in:
fancy
2020-04-22 16:12:06 +08:00
parent e94e413aee
commit a4c5d8f433
3 changed files with 59 additions and 5 deletions

View File

@@ -7,8 +7,8 @@ install(TARGETS cgattach DESTINATION /usr/bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETUID)
install(FILES cgproxy.sh DESTINATION /usr/bin RENAME cgproxy
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
#install(FILES cgproxy2.sh DESTINATION /usr/bin RENAME cgproxy2
# PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES run_in_cgroup.sh DESTINATION /usr/bin RENAME run_in_cgroup
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES cgproxy.service DESTINATION /usr/lib/systemd/system/)
install(FILES cgproxy.conf DESTINATION /etc/)
install(FILES cgroup-tproxy.sh DESTINATION /usr/share/cgproxy/scripts/)

View File

@@ -5,8 +5,12 @@ source $config
# test suid bit
if [ -u "$(which cgattach)" ]; then
cgattach $$ $proxy_cgroup
cgattach $$ $proxy_cgroup && attached=1
else
sudo cgattach $$ $proxy_cgroup
sudo cgattach $$ $proxy_cgroup && attached=1
fi
$@
# test attach success or not
[[ -z "$attached" ]] && echo "config error" && exit 1
exec "$@"

50
run_in_cgroup.sh Normal file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
print_help(){
cat << 'DOC'
usage:
run_in_cgroup --cggroup=CGROUP <COMMAND>
run_in_cgroup --help
note:
CGROUP must start will slash '/' , and no special character
example:
run_in_cgroup --cggroup=/mycgroup.slice ping 127.0.0.1
DOC
}
## parse parameter
for i in "$@"
do
case $i in
--cgroup=*)
cgroup=${i#*=}
shift
;;
--help)
print_help
exit 0
shift
;;
-*)
shift
;;
*)
break
;;
esac
done
[[ -z "$cgroup" ]] && print_help && exit 1
[[ -z "$@" ]] && print_help && exit 1
# test suid bit
if [ -u "$(which cgattach)" ]; then
cgattach $$ $cgroup && attached=1
else
sudo cgattach $$ $cgroup && attached=1
fi
# test attach success or not
[[ -z "$attached" ]] && print_help && exit 1
exec "$@"