0

セントス 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
4

1 に答える 1

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デバッグを支援するために、スクリプトの最初の行を に変更することをお勧めします。これにより、実行中の動作のトレースが表示されます。

于 2012-12-20T16:08:31.887 に答える