linux下创建自启动程序有两种方式:来自:http://www.2cto.com/os/201202/121247.html
一,自启动程序方法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 1745killall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了
用法: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级别是不够的!
参考资料:http://hi.baidu.com/syicriayqxjnpue/item/d4c3d70abb730838f3eafc55
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82057.html