QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 913|回复: 5

怎样让fc2以普通用户的权限启动bt服务器???

[复制链接]
发表于 2004-10-3 02:11:03 | 显示全部楼层 |阅读模式
最近我的服务器假设了bt服务器
下面是bt服务器的rc启动脚本
[code:1]
#!/bin/bash
#
# bnetd         Script to control the Unix Bttrack Daemon
#
# Author:       Hakan Tandogan <[email protected]>
#
# chkconfig: 2345 21 79
# description: bnetd is a Unix clone of the Battle.net Daemon
# ps -efw | grep 'bttrack.py' | grep -v grep |  awk '{print $2}' | xargs kill && killall python || \echo "If BT not stoped,Please kill it by hand"


# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
start)
        if [ -f /var/lock/subsys/bttrack ]; then
                echo "BT is already started!"
        else
                /var/lib/bt/bttrack.py --port 6969 --dfile ./dstate >> /var/log/bttrack.log &
                touch /var/lock/subsys/bttrack
                echo "BT started."
        fi
;;

stop)
        if [ -f /var/lock/subsys/bttrack ]; then
                ps -efw | grep 'bttrack.py' | grep -v grep |  awk '{print $2}' | xargs kill || echo "If BT not stopped,Please kill it by hand!"
                rm -f /var/lock/subsys/bttrack
                echo "BT stopped."
        else
                echo "BT is aleady stopped!"
        fi
;;

restart)
        $0 stop
        $0 start
        ;;

show)
        ps -efw | grep python | grep -v grep
;;

*)
        echo "Usage:./bttrack start|stop|restart|show"
;;

esac

exit 0
[/code:1]

不知道可不可以让bt服务以一个普通用户python的权限开机自动执行,假如可以的,又要如何做呢??
不胜感激!!
发表于 2004-10-3 21:52:49 | 显示全部楼层
你可以利用 su 命令:
su - python -c "your command and args here"
回复

使用道具 举报

 楼主| 发表于 2004-10-7 23:25:30 | 显示全部楼层
是不是将脚本改成下面这样就可以了

[code:1]
#!/bin/bash
#
# bnetd         Script to control the Unix Bttrack Daemon
#
# Author:       Hakan Tandogan <[email protected]>
#
# chkconfig: 2345 21 79
# description: bnetd is a Unix clone of the Battle.net Daemon
# ps -efw | grep 'bttrack.py' | grep -v grep |  awk '{print $2}' | xargs kill && killall python || \echo "If BT not stoped,Please kill it by hand"


# Source function library.
. /etc/rc.d/init.d/functions

# See how we were called.
case "$1" in
start)
   if [ -f /var/lock/subsys/bttrack ]; then
      echo "BT is already started!"
   else
      su - python -c "/var/lib/bt/bttrack.py --port 6969 --dfile ./dstate >> /var/log/bttrack.log & "
      touch /var/lock/subsys/bttrack
      echo "BT started."
   fi
;;

stop)
   if [ -f /var/lock/subsys/bttrack ]; then
      ps -efw | grep 'bttrack.py' | grep -v grep |  awk '{print $2}' | xargs kill || echo "If BT not stopped,Please kill it by hand!"
      rm -f /var/lock/subsys/bttrack
      echo "BT stopped."
   else
      echo "BT is aleady stopped!"
   fi
;;

restart)
   $0 stop
   $0 start
   ;;

show)
   ps -efw | grep python | grep -v grep
;;

*)
   echo "Usage:./bttrack start|stop|restart|show"
;;

esac

exit 0

[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-10-7 23:50:55 | 显示全部楼层
但是我给pthon的shell是/sbin/nologin
而且我不想改这个值,不过不改的话又运行不了su,
不知道改怎么做!!请高手指点!!
回复

使用道具 举报

发表于 2004-10-8 00:38:10 | 显示全部楼层
要用没有shell的用户执行,安装 sudo 。

sudo -u python some_command

具体参数见 sudo 的帮助或手册。
回复

使用道具 举报

 楼主| 发表于 2004-10-14 22:40:48 | 显示全部楼层
呵呵,我用su命令解决了
su -s /usr/bash - python -c "command"
谢谢楼上的兄弟!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 13:28 , Processed in 0.065558 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表