Centos 2.6.32-179.9.1.el6.i686
您好,我的noowbie脚本有问题。 这是行不通的。 当我尝试使用它时(例如/etc/init.d/myscript start)没有任何反应。 在此之前,我在其上制作chkconfig --add myscript和chmod 777。 你能救我吗?
#!/bin/bash
#chkconfig: 2345 10 90
#description test
. /etc/init.d/functions
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
. /etc/sysconfig/network
if [ -f /etc/sysconfig/network-scripts/ifcfg-eth1 ]; then
. /etc/sysconfig/network-scripts/ifcfg-eth1
fi
[ "${NETWORKING}"="no" ] && exit 0
[ -x -a /sbin/ifconfig ] || exit 1
case "$1" in
start)
echo "started"
ifconfig eth1 ${IPADDR} netmask ${NETMASK} up
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
stop)
echo "stopping"
ifconfig eth1 ${IPADDR} netmask ${NETMASK} down
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
status)
echo "showing status"
ifconfig
cat /proc/sys/net/ipv4/ip_forward
route -n
;;
esac
exit 0
答案 0 :(得分:0)
这一行:
[ -x -a /sbin/ifconfig ] || exit 1
是语法错误,当您尝试运行脚本时,应该从bash
获取诊断信息。假设/etc/init.d/functions
,/etc/sysconfig/network
或/etc/sysconfig/network-scripts/ifcfg-eth1
中的某些内容尚未导致您的脚本终止,那么该行就会出现。
实际上,/etc/sysconfig/network
通常不是目录吗?如果是这样,这将导致您的脚本退出,因为它不是文件:
if [ ! -f /etc/sysconfig/network ]; then
exit 0
fi
编辑:您可能希望将脚本的第一行更改为#!/bin/bash -x
以帮助调试。这将向您展示它在运行时所做的事情。