[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:20534] /etc/rcS.d/S35devpts.sh Error



 こんにちは。島田です。

 Potato にしてから pon Annie などとすると、/dev/pts/0 がありません、とい
うエラーが出ます。が、接続はされるのでとりあえず無視していました。

 Linux 起動時のコンソールのメッセージをなんとなく眺めていたら、起動時に
実行されるスクリプトにエラーがあるようなのです。
 具体的には、

    /etc/rcS.d/S35devpts.sh: line 66: syntax error: unexpected end of
    file

というエラー・メッセージが表示されます。

 /etc/rcS.d/S35devpts.sh をのぞいてみたら、次のようになっていました。

#! /bin/sh
set -e

. /etc/default/devpts

[ `uname -s` = "Linux" ] || exit 0

make_devptmx()
{
    [ -c /dev/ptmx ] || mknod --mode=666 /dev/ptmx c 5 2
}

make_devpts()
{
    [ -d /dev/pts ] || mkdir --mode=755 /dev/pts
{

mount_devpts_fs()
{
    mount -t devpts devpts /dev/pts -ogid=${TTYGRP},mode=${TTYMODE}
}

devfs=$(grep -c devfs /proc/filesystems || true)
devpts=$(grep -c devpts /proc/filesystems || true)
devpts_mounted=$(mount | grep -c devpts || true)

release=$(uname -r)
tail=${release#*.*.}
major_release=${release%.${tail}}
minor_release=${tail%%[-.]*}

if [ $devfs -eq 1 ]; then
    solution=devfs
elif [ $devpts -eq 1 ]; then
    solution=devpts
else
    solution=none
fi
case ${major_release} in
    2.[23456789] | 3.*)
	# Have 
	case $solution in
	    devfs)
		:
	    ;;
	    devpts)
		# devpts
		# create /dev/ptmx and /dev/pts dir.
		make_devptmx
		make_devpts
		# mount devpts fs on /dev/pts
		# maybe mountall.sh mounted it already, so check.
		if [ $devpts_mounted -lt 1 ]
		then
		    mount_devpts_fs
		fi
	    ;;
	    none)
		:
	    ;;
	esac
    ;;
    *)
    ;;
esac

このファイルの最初に出てくる /etc/default/devpts は、

# GID of the `tty' group
TTYGRP=5

# Set to 600 to have `mesg n' be the default
TTYMODE=620

となっています。

 シェル・スクリプトは詳しくないのですが、どこが文法違反なのかわかりませ
ん。
 どうしたらこのスクリプトが正しく動くようになるのでしょうか。

 よろしくお願いいたします。


----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxxxx
Home Page: http://www.annie.ne.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------