安装完Ubuntu后遇两个问题。
一是WIN2003无法启动的问题。这个问题的处理是:直接将其删除了,在再boot.ini中也去掉启动项:)
二是需要在系统中打开tftp做路由器配置的备份。而加载tftpd程序,运行后却不见进程加载,再卸掉加载atftpd,同样的问题。这回耐心的一次,读了一下脚本。
与atftpd直接相关的脚本两个,一个是/etc/default/atftpd,这个只有两句,没看出问题。还有一个是/etc/init.d/atftpd了,这个是启动脚本。
#! /bin/sh
#
# atftpd - Script to launch atftpd server. Based on Skeleton.
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/atftpd
NAME=atftpd
DESC="Advanced Trivial FTP server"
USE_INETD=true
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"
test -f $DAEMON || exit 0
set -e
if [ -f /etc/default/atftpd ]; then
. /etc/default/atftpd
fi
if [ "$USE_INETD" = "true" ]; then
exit 0;
fi
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
echo "$NAME."
;;
restart|reload|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
sleep 1
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
其实问题很简单,就出在
if [ "$USE_INETD" = "true" ]; then
exit 0;
fi
上面了。脚本开始将USE_INETD定义为true,但在if中却错成true,这意味着执行到这句时条件永远为真,程序都会退出,而不向下执行。改为"$USE_INETD" = "false"问题解决。
一是WIN2003无法启动的问题。这个问题的处理是:直接将其删除了,在再boot.ini中也去掉启动项:)
二是需要在系统中打开tftp做路由器配置的备份。而加载tftpd程序,运行后却不见进程加载,再卸掉加载atftpd,同样的问题。这回耐心的一次,读了一下脚本。
与atftpd直接相关的脚本两个,一个是/etc/default/atftpd,这个只有两句,没看出问题。还有一个是/etc/init.d/atftpd了,这个是启动脚本。
#! /bin/sh
#
# atftpd - Script to launch atftpd server. Based on Skeleton.
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/atftpd
NAME=atftpd
DESC="Advanced Trivial FTP server"
USE_INETD=true
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"
test -f $DAEMON || exit 0
set -e
if [ -f /etc/default/atftpd ]; then
. /etc/default/atftpd
fi
if [ "$USE_INETD" = "true" ]; then
exit 0;
fi
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
echo "$NAME."
;;
restart|reload|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
sleep 1
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
其实问题很简单,就出在
if [ "$USE_INETD" = "true" ]; then
exit 0;
fi
上面了。脚本开始将USE_INETD定义为true,但在if中却错成true,这意味着执行到这句时条件永远为真,程序都会退出,而不向下执行。改为"$USE_INETD" = "false"问题解决。