最近做的项目是一个实时监测系统,要求万一程序跑死或者core dumped了,能够在1分钟内自动重启并继续运行监测程序。
实现方法很简单,直接利用watchdog就可以了,而Linux默认是启动时需要输入用户名和密码的,这里记录一下能够自动登录的方法。
1.文本模式下的自动登录(也就时/etc/inittab中的 id=3)
之前google出来的方法是需要重新编译mingetty,感觉太麻烦了,后来找到了方法可以通过参数自动登录,只需要在/etc/inittab中的:
1:2345:respawn:/sbin/mingetty tty1
加上 --autologin username这个参数即可,如下所示
1:2345:respawn:/sbin/mingetty <span style="color:#ff0000;">--autologin root</span> tty1
2.图形模式下的自动登录(gnome)
kde的图形界面没有用过,这里指记录一下gnome的自动登录,在/etc/gdm/custom.conf中加入下列配置:
[deamon]
TimedLogEnable=true
TimedLogin=username
TimedLoginDelay=0
现在再重启,就可以自动登录图形界面了
3.开机启动运行自己的程序
如果是gnome,在界面的system->preference->Startup Application设置自己想要在登录后自动启动的应用程序即可。
如果是文本模式,可以编辑~/.bash_profile,在该文件里调用自己的程序即可,当然,gnome下同样可以用此方法来默认启动一个程序。
PS:上述测试实在CentOS5和CentOS6上进行的,其它的系统如Fedora20已经不再使用init方式启动而是使用了systemd,上述更改/etc/inittab的方式就不行了。