【发布时间】:2014-01-09 09:47:35
【问题描述】:
我正在重生 ttyS1 端口上的 /bin/bash。ttyS0 是我的控制台。 下面给出了 inittab 条目。
::respawn:/bin/bash /dev/ttyS1 2> /dev/ttyS1
我的问题是如何禁用/终止响应,以便我可以使用串行端口 用于其他应用程序。
【问题讨论】:
我正在重生 ttyS1 端口上的 /bin/bash。ttyS0 是我的控制台。 下面给出了 inittab 条目。
::respawn:/bin/bash /dev/ttyS1 2> /dev/ttyS1
我的问题是如何禁用/终止响应,以便我可以使用串行端口 用于其他应用程序。
【问题讨论】:
您可以像其他进程一样终止该 bash 进程。但是,init 会立即重新生成它 - 没有任何收获。
要禁用该进程,您必须编辑 /etc/inittab 并注释掉该行。
要通知 init 这一变化,您必须向 init 发送 SIGHUP:kill -HUP pid-of-init。
(我认为 pid-of-init 始终为 1)。
如果在某些情况下您需要将 bash 连接到 ttyS1,您可能需要指定 init 应该启动 bash 的某些运行级别。
希望这个答案对您有所帮助...(有关详细信息,请参阅 man inittab)
【讨论】:
在我的 Ubuntu 上,这对我有用:
sudo rm -f /etc/init/<proc_name>.conf
sudo initctl stop <proc_name>
它返回了一条消息:
initctl: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist
但是这个过程无论如何都没有重新生成就停止了。
【讨论】:
inittab 必须重新检查,否则它将启动该过程。 删除/etc/inittab上要处理的命令行链接并执行:
# init q
或
# telinit q
然后,你可以杀死进程,它不会重生。
【讨论】: