2014-01-08 23 views
0

下面是啓動shell的inittab文件入口。如何動態啓動linux shell

::respawn:/bin/bash </dev/ttyS0> /dev/ttyS0 2> /dev/ttyS0 

我的問題是,我讀一個配置文件,該文件說哪個TTY端口/bin/bash需要重生。文件內容可能是ttyS0,ttyS1ttyS2

如何根據文件內容重新生成/bin/bash

回答

0

假設您的配置文件是/etc/dynshell.cfg,包含設備名稱(如ttyS0)在同一行,沒有別的,你可以這樣寫......

#!/bin/sh 
port=/dev/$(</etc/dynshell.cfg) 
exec /bin/bash <$port >$port 2>$port 

...到/usr/local/sbin/dynshell,然後使用此行:

::respawn:/usr/local/sbin/dynshell 

雖然這可能會更好/更安全:

#!/bin/sh 
port=/dev/$(</etc/dynshell.cfg) 
exec /bin/bash 0<>$port >&0 2>&0 
+0

謝謝你的答案。如果我們運行exec,它只會產生/ bin/bash一次?如果有人殺死/退出shell,respawn會再次產生/ bin/bash。 – user2857290