当前位置: 技术问答>linux和unix
/etc/init.d/rcS文件中/bin/sh后的进程都无法启动?
来源: 互联网 发布时间:2017-05-22
本文导语: 问题的提出: 我要实现开机自启动,编辑 vi /etc/init.d/rcS,将我的程序加到如下位置: .... .......................................#其他内容 /bin/sh /upepri/mptmsu/bin/restartacqdatasys.sh 上面/upepri/mptmsu/bin/restartacqdatasys.sh是我要开...
问题的提出:
我要实现开机自启动,编辑 vi /etc/init.d/rcS,将我的程序加到如下位置:
.... .......................................#其他内容
/bin/sh
/upepri/mptmsu/bin/restartacqdatasys.sh
上面/upepri/mptmsu/bin/restartacqdatasys.sh是我要开机自启动的程序,如果放在/bin/sh后面,开机时,没启动起来,但放在/bin/sh前面,开机后就启动了,即改成如下就可以开机自启动
.... .......................................#其他内容
/upepri/mptmsu/bin/restartacqdatasys.sh
/bin/sh
我是菜鸟。刚从事linux,大侠们能说下为何放在后面不行的原因吗?是不是/bin/sh会挂起,导致其后所有的都不能执行?
我要实现开机自启动,编辑 vi /etc/init.d/rcS,将我的程序加到如下位置:
.... .......................................#其他内容
/bin/sh
/upepri/mptmsu/bin/restartacqdatasys.sh
上面/upepri/mptmsu/bin/restartacqdatasys.sh是我要开机自启动的程序,如果放在/bin/sh后面,开机时,没启动起来,但放在/bin/sh前面,开机后就启动了,即改成如下就可以开机自启动
.... .......................................#其他内容
/upepri/mptmsu/bin/restartacqdatasys.sh
/bin/sh
我是菜鸟。刚从事linux,大侠们能说下为何放在后面不行的原因吗?是不是/bin/sh会挂起,导致其后所有的都不能执行?
|
二楼说得对,第一行应该是 #!/bin/sh
如果是 /bin/sh,那么它会执行不带参数的 /bin/sh,sh 会一直等待输入,由于 sh 进程不会退出,因而后面的进程都没有机会执行。
无需放到 rcS 中,自己在命令行下执行一下这个脚本,就可以发现它会产生一个新的交互式 shell 进程,按 Ctrl+D 或执行 exit 命令后,才继续执行脚本里后面的命令。
如果是 /bin/sh,那么它会执行不带参数的 /bin/sh,sh 会一直等待输入,由于 sh 进程不会退出,因而后面的进程都没有机会执行。
无需放到 rcS 中,自己在命令行下执行一下这个脚本,就可以发现它会产生一个新的交互式 shell 进程,按 Ctrl+D 或执行 exit 命令后,才继续执行脚本里后面的命令。
|
#3 楼已经解释了,道理一样啊