linux下创建自启动程序有两种方式:

一,自启动程序方法1:

etc/rc.local在里面加入/home/robin/code/autoruntest > /dev/null &(其中autoruntest 测试程序名称,下同)。即可自启动



二,启动程序方法2:(着重介绍此方法)

创建linux服务,步骤如下:
    

1) 写服务启动脚本文件(后附例子)
       2) 修改脚本文件chmod 777 autoruntest
       3) 脚本文件拷贝到/etc/rc.d/init.d/
       4) chkconfig --add autoruntest 添加服务
       5)  重新启动(完成)
       其中到了第三步后就可以使用service启动停止了,要自启动必须使用chkconfig 将服务添加到系统中。1,使service可以启动/停止:
第一步,编写服务启动脚本yaoservice:
start()  
{  
    echo "start aoe-yaoed"  
    /usr/sbin/yaoed &   #可执行文件路径  
    exit 0;  
}  
stop()  
{  
    echo -n "stop aoe-yaoed"  
    if pkill yaoed  
        then  
        echo  "              [ok]"  
    else  
        echo  "              [failed]"  
    fi  
}  
case "$1" in  
start)  
    start  
    ;;  
stop)  
    stop  
    ;;  
restart)  
    stop  
    start  
    ;;  
*)  
    echo "usage: $0 start|stop|restart"  
    exit 0;  
esac
 第二步,把文件yaoservice拷贝到/etc/init.d/目录下面
第三步,修改yaoservice权限:chmod 755 -R /etc/init.d/yaoservicemod
第四步,执行service testService start,报“env: /etc/init.d/oracle: No such file or directo”
                 郁闷了半天,为什么呢?以为脚本有问题,百度后得知:其实是文件格式不对,在window下编辑的文件通常是DOS格式字符,要转换成UNIX格式字符
                 用UltraEdit更改:文件--》另存为--》换行符,选:UNIX 终束符 - LF
                然后再次上传到init.d目录下,并修改权限,哈哈OK了!!(出现问题,将问题百度下还是不错的,当然google也行喽,就是有时会和谐下)

注:kill杀进程命令,还有killall、pkill、xkill
kill的应用是和ps 或pgrep 命令结合在一起使用的:
     [root@localhost ~]# ps -e | grep yaoed
       1745 pts/1    00:00:00 yaoed
      [root@localhost ~]# kill 1745 killall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了
 用法:killall 正在运行的程序名
      [root@localhost ~]# pkill yaoedpkill 和killall 应用方法差不多,也是直接杀死运行中的程序
xkill 是在桌面用的杀死图形界面的程序
 
2,使服务可以开机自动启动
第五步,chkconfig --add yaoservice,报:“service nginx does not support chkconfig“错误
              需要要在脚本里加上如下代码:
              # chkconfig: 2345 08 92
               # description: Automates a packet filtering firewall withipchains.              注释也是要加上的,不知道为什么,本人对脚本不熟悉,加到start()上面就行了。
             然后在执行一遍就ok了!
第六步,现在重启完机器后仍然不能自动启动,还差最后一步:
            [root@localhost ~]# chkconfig --level 3 yaoservice on  #修改level 3 级别
 完成!!重启后程序自动启动了
 
chkconfig命令是设置开机服务自动启动/关闭自动启动命令:
[root@localhost ~]# chkconfig --list     显示开机可以自动启动的服务
 [root@localhost ~]# chkconfig --add *** 添加开机自动启动***服务
 [root@localhost ~]# chkconfig --del ***   删除开机自动启动***服务
 [root@localhost ~]# chkconfig --level ***  设置level 级别 状态

 

/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,都是链接文件,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。而,chkconfig --level *** 命令正是修改这些链接名开头字母的命令。 

至于为什么要修改level3 ,而修改level 5 不行,还不是很清楚!当然数字越小级别越高,可以肯定的是只修改level5级别是不够的!