免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8366 | 回复: 22
打印 上一主题 下一主题

为什么加入/etc/rc2.d 的脚本,系统启动以后不执行。在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-31 13:43 |只看该作者 |倒序浏览
20可用积分
# ln -sf /etc/init.d/cwmpd /etc/rc2.d/cwmpd

我手工执行一下命令都可以的。
#/etc/init.d/cwmpd start
#/etc/init.d/cwmpd stop
#/etc/init.d/cwmpd restart

在/etc/inittab下
# The default runlevel.
id:2:initdefault:

我的脚本如下/etc/init.d/cwmpd
#!/bin/sh

set -e


DAEMON=/usr/bin/cwmpTH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/cwmpd.pid
cwmpd_daemon=/usr/bin/cwmp
test -x $cwmpd_daemon || exit 0
export TALK_ROOT=/var

running()
{
    # No pidfile, probably no daemon present
    #
    if [ ! -f $pidfile ]
    then
        return 1
    fi

    pid=`cat $pidfile`

    # No pid, probably no daemon present
    #
    if [ -z "$pid" ]
    then
        return 1
    fi

    if [ ! -d /proc/$pid ]
    then
        return 1
    fi

    return 0
}

case "$1" in
  start)   
    if running; then
        echo "TR069 Client already running."
        
    else
        echo "Starting TR069 Client."
        $cwmpd_daemon &
        sleep 1
    fi   
    ;;
  stop)
    echo "Stopping TR069 Client."
    if running; then
        kill -9 `cat $pidfile`
    fi
    ;;
  restart)
    echo  "Restarting TR069 Client."
    if running; then
        kill -9 `cat $pidfile`
    fi
    sleep 1
    $cwmpd_daemon &
    sleep 1
    ;;
  *)
    echo "Usage: /etc/init.d/cwmpd {start|stop|restart}"
    exit 1
esac

exit 0

最佳答案

查看完整内容

一.将当前的环境变量加到/etc/init.d/cwmpd前面,并export DAEMON=/usr/bin/cwmpTH=/bin:/usr/bin:/sbin:/usr/sbin应该是错的,用当前DAEMON的值吧。###将当前的环境变量存到/tmp/env.txt:env>/tmp/env.txt###编辑/etc/init.d/cwmpd文件:vi /etc/init.d/cwmpd###将环境变量插入到/etc/init.d/cwmpd::0r /tmp/env.txt###export 所有的环境变量名,空格分隔,同时删除多余的拉圾行二、建立确的符号链接S99及K01可根据你的rc2.d中的 ...

论坛徽章:
0
2 [报告]
发表于 2008-10-31 13:43 |只看该作者
一.将当前的环境变量加到/etc/init.d/cwmpd前面,并export
    DAEMON=/usr/bin/cwmpTH=/bin:/usr/bin:/sbin:/usr/sbin应该是错的,用当前DAEMON的值吧。
###将当前的环境变量存到/tmp/env.txt:
env>/tmp/env.txt
###编辑/etc/init.d/cwmpd文件:
vi /etc/init.d/cwmpd
###将环境变量插入到/etc/init.d/cwmpd:
:0r /tmp/env.txt
###export 所有的环境变量名,空格分隔,同时删除多余的拉圾行

二、建立确的符号链接S99及K01可根据你的rc2.d中的情况,以及你想执行的次序适当调整大小。
    (S开头为开机执行,K开头为关机执行
rm /etc/rc2.d/cwmpd
ln -sf /etc/init.d/cwmpd /etc/rc2.d/S99cwmpd
ln -sf /etc/init.d/cwmpd /etc/rc2.d/K01cwmpd

三、如果有问题,记录日记,并查日记
   在/etc/init.d/cwmpd前加上set -x
    开机后查/etc/rc2.log(也可能在别的目录,find / -name rc\*.log -print 找一下)
   分析日记,贴上来也行。

论坛徽章:
0
3 [报告]
发表于 2008-10-31 13:49 |只看该作者

回复 #1 James_xu 的帖子

如果是linux 下 如果以 runlevels3启动 ,是启动rc3.d下的文件

如果是 solaris下  就能实现你的启动(solaris 与 linux启动过程是不一样的)

论坛徽章:
0
4 [报告]
发表于 2008-10-31 13:51 |只看该作者
在/etc/inittab下
# The default runlevel.
id:2:initdefault:

我是以level 2启动的,关键是/etc/rc2.d下其他的都能运行,就我那个不行,

我怀疑是脚本写的问题,但是找不出原因。

论坛徽章:
0
5 [报告]
发表于 2008-10-31 13:55 |只看该作者

回复 #3 James_xu 的帖子

ln -s /etc/init.d/cwmpd  /etc/rc2.d/S100cwmpd
chmod 777  /etc/rc2.d/S100cwmpd  

再试试呢。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
6 [报告]
发表于 2008-10-31 14:01 |只看该作者
原帖由 James_xu 于 2008-10-31 13:43 发表

DAEMON=/usr/bin/cwmpTH=/bin:/usr/bin:/sbin:/usr/sbin

...

这是原句?

论坛徽章:
0
7 [报告]
发表于 2008-10-31 14:02 |只看该作者
不行,即使改成79什么的都不行。晕倒

论坛徽章:
0
8 [报告]
发表于 2008-10-31 14:03 |只看该作者

回复 #5 ynchnluiti 的帖子

是的,难道是这个?

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
9 [报告]
发表于 2008-10-31 14:10 |只看该作者
原帖由 James_xu 于 2008-10-31 14:03 发表
是的,难道是这个?

那句好像没用。没有现场只能猜测。 你的命令是/usr/bin/cwmp, 而不是/usr/bin/cwmpd?

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
10 [报告]
发表于 2008-10-31 14:13 |只看该作者
test -x $cwmpd_daemon || exit 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP