web-dev-qa-db-ja.com

agettyは常に終了しています

CentOS6.2でシリアルコンソールをセットアップしようとしています。

ログインコンソールを取得できましたが、grubを有効にして、シリアルポートにカーネルログを表示しようとすると、grubは数秒ごとに終了し続けます。

これは私の現在の設定です:

/etc/init/serial-ttyS1.conf

# This service maintains a getty on /dev/ttyS1.

start on stopped rc RUNLEVEL=[2345]
stop on starting runlevel [016]

respawn
exec /sbin/agetty /dev/ttyS1 115200 vt100-nav

/boot/grub/grub.conf

#boot=/dev/sda
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=1 --speed=19200
terminal --timeout=8 console serial

title CentOS (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-Sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=VolGroup/lv_root quiet rd_NO_DM console=tty0 console=ttyS1,19200n8
        initrd /initramfs-2.6.32-220.el6.x86_64.img

カーネルコマンドスイッチ(console=tty0 console=ttyS1,19200n8)の最後にある2つのconsoleフラグに注意してください。それらを削除すると、問題は発生しなくなりますが、シリアルコンソールのgrubとブートログも失われます。

これが/var/log/messagesからのサンプルです:

Aug 27 14:14:24 ovesh-centos-62 init: serial-ttyS1 main process ended, respawning
Aug 27 14:14:25 ovesh-centos-62 init: serial (ttyS1) main process (1614) terminated with status 1
Aug 27 14:14:25 ovesh-centos-62 init: serial (ttyS1) main process ended, respawning
Aug 27 14:14:26 ovesh-centos-62 init: serial (ttyS1) main process ended, respawning
Aug 27 14:15:25 ovesh-centos-62 init: serial-ttyS1 main process ended, respawning
Aug 27 14:15:35 ovesh-centos-62 init: serial (ttyS1) main process (1731) terminated with status 1
Aug 27 14:15:35 ovesh-centos-62 init: serial (ttyS1) main process ended, respawning

注:他の人がログに「リスポーンが速すぎます」というメッセージを受け取るのを見たことがありますが、これはnotここに当てはまります。

3
Ovesh

エラーが発生する場所を見つけてください。

Grubconfigを除くすべての場所でシリアルを無効にします。起動中にシリアルポートにgrubメニューが表示されますか?

シリアルコンソールオプションなしで起動し、agetty /dev/ttyS0 115200 -a rootを起動してみてください。このコマンドは失敗しますか?このコマンドの実行中にシリアルポートにログインできますか?

次に、agetty /dev/ttyS0 115200 vt100-navで同じテストを試してください

1
Selivanov Pavel

コメントの1つで述べたように:

シェルを取得するために/etc/init/serial-ttyS1.confの構成を追加する必要がないことがわかりました。

カーネルにconsole引数(例:console=ttyS1,19200n8)を渡すだけで十分です。

したがって、2つのプロセスが常にagettyを開始しようとしていて(おそらくお互いを殺し合っているのでしょうか?)、失敗し続けていると思います。

0
Ovesh