Ubuntu的启动脚本问题

我有这个启动脚本在Fedora下运行良好

#!/bin/sh -e export P4JOURNAL=/var/log/perforce/journal export P4LOG=/var/log/perforce/p4err export P4ROOT=/var/local/perforce export P4PORT=1666 PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" p4start="p4d -d" p4stop="p4 admin stop" p4user=perforce case "$1" in start) #NOTE: in original, havent found RedHat equiv or source to include # Havent found . /lib/lsb/init-functions #log_action_begin_msg "Starting Perforce Server" echo "starting perforce server from script..." $p4start; ;; stop) # see above #log_action_begin_msg "Stopping Perforce Server" echo "stoping perforce server from script" $p4stop; ;; restart) $p4stop; $p4start; ;; *) echo "Usage: /etc/init.d/perforce (start|stop|restart)" exit 1 ;; esac 

但是在ubuntu下不行,不知道出了什么问题(p4d和p4都在/ usr / local / bin中)

任何帮助将不胜感激。

我用sh -x得到了这个

 starting perforce server from script... + p4d -d + exit 0 

结果似乎是正确的,但p4d没有运行。

看起来你的脚本没有错。 “p4d -d”是否按照您手动运行的方式工作? 如果是这样,那么我的猜测是,一些环境variables或path信息没有足够的信息,使p4d做正确的事情(或有错误的信息)。