ubuntu怎么写脚本的( 二 )


arch并没有提供rcN.d之类的目录 , 但是我们由这一句rm:2345:wait:/etc/rc.multi看到会执行/etc/rc.multi/rc.multi脚本 。内容如下:[[email protected] etc]$ cat rc.multi #!/bin/bash## /etc/rc.multi#. /etc/rc.conf. /etc/rc.d/functions# Load sysctl variables if sysctl.conf is present[ -r /etc/sysctl.conf ] && /sbin/sysctl -q -p &>/dev/null# Start daemonsfor daemon in "${DAEMONS[@]}"; do if [ "$daemon" = "${daemon#!}" ]; then if [ "$daemon" = "${daemon#@}" ]; then start_daemon $daemon else start_daemon_bkgd ${daemon:1} fi fidoneif [ -x /etc/rc.local ]; then /etc/rc.localfi# vim: set ts=2 noet:会执行/etc/rc.conf和/etc/rc.d/functions , 前者是arch用户最熟悉的 , 后者看看代码很长 , 也是一些启动设置 。
上面我们看到会执行/etc/rc.local , 这个也是一个启动脚本 , 用户常加入自定义脚本在里面 。/etc/rc.conf里面的服务启动都是相应在/etc/rc.d/目录下当脚本 , arch上并没有链接到/etc/init.d目录下 , 因为arch根本没有/etc/init.d这个目录对于ubuntu:参考文档ubuntu中inittab不见了 , 而变成了upstart机制 , 启动脚本改成了/etc/event.d/rc-default , 内容如下:start on stopped rcSscript runlevel --reboot || true if grep -q -w -- "-s\|single\|S" /proc/cmdline; then telinit S elif [ -r /etc/inittab ]; then RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" / 。
3. linux启动脚本如何写 第1种:直接写入 rc.local 文件 如:echo " ls -la >/tmp/a.txt " >>/etc/rc.local(这种是直接把命令写入启动文件rc.local中 , 当然也可以引申为 将命令直接写入到sh文件 , 再加上执行权限 , 将这个全路径文件名写入rc.local也一样) 第2种:先使用runlevel 查看正常启动所运行的级别上 , 再在/etc/rc*.d(星号代表运行级别 , 各系统可能存在差异)的目录中新加入(不是写入)启动文件以S开头的文件 。
这种方法稍稍复杂点 。

ubuntu怎么写脚本的

文章插图