0
下面是啓動shell的inittab文件入口。如何動態啓動linux shell
::respawn:/bin/bash </dev/ttyS0> /dev/ttyS0 2> /dev/ttyS0
我的問題是,我讀一個配置文件,該文件說哪個TTY端口/bin/bash
需要重生。文件內容可能是ttyS0
,ttyS1
或ttyS2
。
如何根據文件內容重新生成/bin/bash
。
下面是啓動shell的inittab文件入口。如何動態啓動linux shell
::respawn:/bin/bash </dev/ttyS0> /dev/ttyS0 2> /dev/ttyS0
我的問題是,我讀一個配置文件,該文件說哪個TTY端口/bin/bash
需要重生。文件內容可能是ttyS0
,ttyS1
或ttyS2
。
如何根據文件內容重新生成/bin/bash
。
假設您的配置文件是/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
謝謝你的答案。如果我們運行exec,它只會產生/ bin/bash一次?如果有人殺死/退出shell,respawn會再次產生/ bin/bash。 – user2857290