LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: xjtufanjj

怎么在开机时自动运行几个命令?急等答案!

[复制链接]
发表于 2006-2-22 19:57:44 | 显示全部楼层
你是要启动无线网卡,不是在开机时自动运行什麽命令啊。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 09:51:01 | 显示全部楼层

问题已经搞定!现在把我详细的步骤写出来!希望能对大家又帮助!

我用的是debian。
   用pci的无线网卡作研究,在安装以后,每次开机都需要重新出入三行命令才能启动无线网卡(权限是超级用户才可以运行这三个命令
wlanconfig ath0 create wlandev wifi0 wlanmode sta
modprobe wlan_scan_sta
ifconfig ath0 up
),加载其扫描模块。因此为了能在开机就能运行,自己试了一些办法,没有成功,又发贴询问,得到大家的大力帮助。试过一些办法后,终于搞定!
   因为debian默认开机运行的是/etc/rc2.d/里面的脚本,打开/etc/rc2.d/就会发现里面全是符号连接,都是连接到/etc/init.d/里面的脚本。里面就有gdm(开机运行的复制粘贴程序),在rc2.d里面对应的是S99gdm。因此就可以把自己需要运行的命令在init.d里面做一个脚本,然后连接到rc2.d,这样开机就可以运行了。
   我的具体步骤是:在超级用户下进入/etc/init.d/,然后用vi rclocal,建立rclocal脚本:
#!/bin/sh/
/usr/local/bin/wlanconfig ath0 create wlandev wifi0 wlanmode sta
/sbin/modprobe wlan_scan_sta
/sbin/ifconfig ath0 up
然后退出。
注意必须在命令前加入命令的路径,否则运行后就会出现错误,就是找不到这个命令(可能普通命令不需要,我得这几个命令需要在超级用户下才可以运行)。可以用where找路径,比如
#where wlanconfig
#wlanconfig is /usr/local/bin/
这样就可以找出路径加载命令前。
然后做一个符号连接,连到/etc/rc2.d/里面。
ln -s ../init.d/rclocal /etc/rc2.d/S95rclocal
就可以了。注意后面是S95在加连接的文件名。
(我刚开始是用S99rclocal,好像不可以,可能是gdm是开机最后一个运行命令,因此自己的必须要在gdm前运行,与gdm连接的是S99gdm,因此我们自己的S后面数字应该小于99吧!这个是我的理解,可能不对,或是比较幼稚,请大家指正。)
这个时后就可以重新开机了!命令就在开机时自动运行了!
在开机后你可以用Ctrl+Alt+F1打开一个控制台,在屏幕的下面你就可以看到运行结果了。这个时后你也可以看到运行是否有错,错在那里,可以调试。
(我刚开始不知道在那里看运行结果,开机后什么也不知道,呵呵!fei非常感谢师兄!)
非常感谢yongjian,nfs21cn,huan,d00m3d,超级用户,springwind426,等等的帮助!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 09:56:08 | 显示全部楼层

现在我已经搞定了。把详细步骤写出来,希望对大家有帮助!

我用的是debian。
   用pci的无线网卡作研究,在安装以后,每次开机都需要重新出入三行命令才能启动无线网卡(权限是超级用户才可以运行这三个命令
wlanconfig ath0 create wlandev wifi0 wlanmode sta
modprobe wlan_scan_sta
ifconfig ath0 up
),加载其扫描模块。因此为了能在开机就能运行,自己试了一些办法,没有成功,又发贴询问,得到大家的大力帮助。试过一些办法后,终于搞定!
   因为debian默认开机运行的是/etc/rc2.d/里面的脚本,打开/etc/rc2.d/就会发现里面全是符号连接,都是连接到/etc/init.d/里面的脚本。里面就有gdm(开机运行的复制粘贴程序),在rc2.d里面对应的是S99gdm。因此就可以把自己需要运行的命令在init.d里面做一个脚本,然后连接到rc2.d,这样开机就可以运行了。
   我的具体步骤是:在超级用户下进入/etc/init.d/,然后用vi rclocal,建立rclocal脚本:
#!/bin/sh/
/usr/local/bin/wlanconfig ath0 create wlandev wifi0 wlanmode sta
/sbin/modprobe wlan_scan_sta
/sbin/ifconfig ath0 up
然后退出。
注意必须在命令前加入命令的路径,否则运行后就会出现错误,就是找不到这个命令(可能普通命令不需要,我得这几个命令需要在超级用户下才可以运行)。可以用where找路径,比如
#where wlanconfig
#wlanconfig is /usr/local/bin/
这样就可以找出路径加载命令前。
然后做一个符号连接,连到/etc/rc2.d/里面。
ln -s ../init.d/rclocal /etc/rc2.d/S95rclocal
就可以了。注意后面是S95在加连接的文件名。
(我刚开始是用S99rclocal,好像不可以,可能是gdm是开机最后一个运行命令,因此自己的必须要在gdm前运行,与gdm连接的是S99gdm,因此我们自己的S后面数字应该小于99吧!这个是我的理解,可能不对,或是比较幼稚,请大家指正。)
这个时后就可以重新开机了!命令就在开机时自动运行了!
在开机后你可以用Ctrl+Alt+F1打开一个控制台,在屏幕的下面你就可以看到运行结果了。这个时后你也可以看到运行是否有错,错在那里,可以调试。
(我刚开始不知道在那里看运行结果,开机后什么也不知道,呵呵!非常感谢师兄!)
非常感谢yongjian,nfs21cn,huan,d00m3d,超级用户,springwind426,等等的帮助!
回复 支持 反对

使用道具 举报

发表于 2006-2-23 13:43:28 | 显示全部楼层
注意必须在命令前加入命令的路径,否则运行后就会出现错误,就是找不到这个命令(可能普通命令不需要,我得这几个命令需要在超级用户下才可以运行
看看rc这个脚本就知道为什么wlanconfig必须要指明路径了。
我刚开始是用S99rclocal,好像不可以,可能是gdm是开机最后一个运行命令,因此自己的必须要在gdm前运行,与gdm连接的是S99gdm,因此我们自己的S后面数字应该小于99吧!这个是我的理解,可能不对,或是比较幼稚,请大家指正。
不是的,我的gdm在第13位运行,后面还有一大堆东西。你应该是可以用99的。这个数字表示起动顺序,同时表示一定的依赖关系。同时运行的起动脚本之间一般没有依赖关系。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表