在《在Linux中利用Service命令添加系统服务及开机自启动》中提到,可以使用 chkconfig 把服务加到开机自动启动列表里,开机就能自启动了,但是chkconfig 是Redhat下的程序,而在Ubuntu下有一个更好的程序可以完美“替代”chkconfig,那就是sysv-rc-conf。
这里在 Ubuntu16.04上进行演示。
第1步:安装
sudo apt-get install sysv-rc-conf
第2步:放置服务
把需要自启动的脚本放置的 /etc/init.d 目录下
第3步:使用
方法一:命令行设置
sudo sysv-rc-conf xxxx on
方法二:图像界面设置
sudo sysv-rc-conf
小建议:在使用 sysv-rc-conf 前,将终端窗口最大化,否则选项显示不全。
操作界面十分简洁,可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。当方括号中打X的即表示运行在对应runlevel时开机启动的服务。
即: 在 /etc/rc.d/rc*.d 目录中建立 /etc/init.d/ 服务的软链接
示例:
1) 首先编写demo程序:hello.c
#include
main()
{
FILE *fp;
char a[] = "Hello world!";
fp=fopen("hhh.txt","a+");
fputs(a,fp);
return 0;
}
2) 编译hello.c
gcc -g hello.c -o hello
3) 在/etc/init.d目录下添加脚本test
#!/bin/bash
start()
{
echo "------------------test----------------"
cd /home/xxx/test/
./hello
}
case $1 in
start):
start
;;
stop):
echo "-----------------stop------------------"
;;
esac
exit 0
4) 设置权限
chmod 755 /etc/init.d/test
5)建立软连接
在相关运行级别创建启动软连接,例如,开机自启的话,在/etc/rc2.d/中创建启动服务脚本的软连接(命名S开头)
ln -s /etc/init.d/test /etc/rc2.d/S20test
在/etc/rc0.d/创建停止服务软连接:
ln -s /etc/init.d/test /etc/rc0.d/K20test
6)重启
reboot
效果: 重启后将在HOME路径下创建 hhh.txt 文件。
参考: http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html
1. 读取 MBR 的信息,启动 Boot Manager
Windows 使用 NTLDR 作为 Boot Manager,如果您的系统中安装多个版本的 Windows,您就需要在 NTLDR 中选择您要进入的系统。
Linux 通常使用功能强大,配置灵活的 GRUB 作为 Boot Manager。
2. 加载系统内核,启动 init 进程
init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
3. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以 start 参数启动,并指向一个系统中的程序。
通常情况下, /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。例如您设定的运行级别为 3,那么它对应的启动目录为 /etc/rc3.d/ 。
4. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg
Xwindow 为 Linux 下的图形用户界面系统。(/etc/rcS.d/S02x11-common)
5. 启动登录管理器,等待用户登录
Ubuntu 系统默认使用 GDM 作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(可以在 /etc/rc3.d/文件夹中找到一个名为 S03lightdm 的链接)