![启动-停止-守护进程 - 奇怪的行为](https://linux22.com/image/161103/%E5%90%AF%E5%8A%A8-%E5%81%9C%E6%AD%A2-%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%20-%20%E5%A5%87%E6%80%AA%E7%9A%84%E8%A1%8C%E4%B8%BA.png)
我的设置
有一个盒子,其中包含 NSLU2(又名“slug”),控制教堂供暖系统并运行 Slugos(本质上是 Linux 2.6.27.8 - IOT 往往运行有点古老的 Linuxen)。我使用 ssh 和 NFSv3 从家里访问它(因为 slugos 似乎不喜欢 NFSv4)。
NFSv3 的危险之一是远端路由器中的防火墙需要固定端口号安装和统计数据。为了进行实验,我在家里的 LAN 上设置了一个相同的“slug”,观察到了以下行为。
问题
我已经到了那个状态rpcinfo -p给出:
program vers proto port service 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100021 1 udp 39590 nlockmgr 100021 3 udp 39590 nlockmgr 100021 4 udp 39590 nlockmgr 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 tcp 52524 nlockmgr 100021 3 tcp 52524 nlockmgr 100021 4 tcp 52524 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100024 1 udp 7791 status 100024 1 tcp 7791 status
现在我开始安装和mountd -f /etc/exports -p 7792添加以下内容
100005 1 udp 7792 mountd
100005 1 tcp 7792 mountd
100005 2 udp 7792 mountd
100005 2 tcp 7792 mountd
100005 3 udp 7792 mountd
100005 3 tcp 7792 mountd
这正是我想要的。现在将其放入适当的/etc/init.d文件,通常通过调用来完成
启动-停止-守护进程 --start --exec /usr/sbin/mountd --“-f /etc/exports -p 7792”
但这给了我
100005 1 tcp 47725 mountd
100005 2 udp 47909 mountd
100005 2 tcp 47725 mountd
100005 3 udp 47909 mountd
100005 3 tcp 47725 mountd
所以它忽略了-p 7792。
毫无疑问我可以破解它,但怎么可能呢启动-停止-守护进程行为如此疯狂?
答案1
至少如果这是 Debian/Ubuntu 启动-停止-守护进程,您不应该引用这样的参数。
start-stop-daemon --start --exec /usr/sbin/mountd -- -f /etc/exports -p 7792
应该可以工作。 (当您引用它时,它会被发送到 mountd 作为一命令行参数,而不是应有的四个。)