coreutils里带runuser这个工具
init.d/functions里是这样使用的
点击(此处)折叠或打开
- $cgroup $nice runuser -s /bin/bash $user -c "$corelimit >/dev/null 2>&1 ; $*"
亏我还傻乎乎编译了suse下的 killproc
以后init.d脚本里这样启动就能切换用户了(epmd的启动脚本)
点击(此处)折叠或打开
- start() {
- core_size=${LIMIT_CORE:-0}
- fd_num=${LIMIT_OPEN:-20000}
- proc_num=${LIMIT_PROC:-20000}
- stack_size=${LIMIT_STACK:-10240}
- ulimit -c $core_size /dev/null 2>&1
- ulimit -n $fd_num /dev/null 2>&1
- ulimit -u $proc_num /dev/null 2>&1
- ulimit -s $stack_size /dev/null 2>&1
- echo -n $"Starting $prog: "
- #daemon /sbin/startproc -u epmd -g epmd \
- daemon --user epmd \
- $EPMD_BIN \
- -daemon \
- -address "${EPMD_ADDRESSES:-127.0.0.1}" \
- -port "${EPMD_PORT:-4369}"
- retval=$?
- echo
- [ $retval -eq 0 ] && touch $lockfile
- return $retval
- }