RunitベースのLinuxインストールでagettyの実行中にエラーが発生しました。

RunitベースのLinuxインストールでagettyの実行中にエラーが発生しました。

runitベースのLinuxシステムでagettyを実行しようとしていますが、次の問題が発生します。

sh: cannot set terminal process group (136) Inappropriate ioctl for device
sh: no job control in this shell

このエラーについてはよくわかりません。どんなアイデアがありますか?

agettyを実行するスクリプトは次のとおりです。

#!/bin/sh
exec /sbin/agetty 38400 tty1 linux --noclear

どんな助けでもいいでしょう。

ベストアンサー1

使用方法setsidは次のとおりです。

#!/bin/sh
exec setsid /sbin/agetty 38400 tty1 linux --noclear

ラッパーはsetsidセッションリーダーでagettyを起動します(この回答をご覧ください)にバインドできますtty1

次の例では、他の動作を確認できますps

# ps xao pid,ppid,sid,tty,cmd
[...]
150 1   150 ?    runsvdir
154 150 155 ?    runsv agetty-3
157 154 157 tty3 -bash
152 150 152 ?    runsv agetty-4
156 152 152 ?    -bash
[...]

agetty-3サービスを利用しsetsidagetty-4サービスを利用していません。したがって、tty3のシェルはセッションリーダーであり、そのttyにバインドされます。 tty4のシェルはスーパーバイザと同じセッションにあり、バインド解除されています(?tty列で)。

おすすめ記事