编写一个shell脚本文件,例如python_auto.sh,文件内容:
2.编写start.py文件,里面执行你需要服务器开启执行的操作
3.在 /etc/profile 这个文件中,添加shell脚本文件路径,例如:
在服务器开机时会自动执行 /etc/profile中的代码
注: linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件,另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接,也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序! 还 需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。Ubuntu系统运行级别: 0 系统停机状态 1 单用户或系统维护状态 2~5 多用户状态 6 重新启动
登录时自动运行程序: 用 户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序。 退出登录时自动运行程序: 退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。
还有一种推荐做法:
在/etc/rc.local文件中添加一行:
/usr/bin/python2.7 /usr/local/qlya/timing_insert.py &
&符号为让脚本后台运行,不在命令行显示结果
A 自带开机脚本
/etc/rc.local脚本是一个ubuntu16.04及其以前的系统中自带的开机脚本,在没有修改之前里面内容如下。
[plain] view plain copy
- #!/bin/sh -e
- #
- # rc.local
- #
- # This script is executed at the end of each multiuser runlevel.
- # Make sure that the script will "exit 0" on success or any other
- # value on error.
- #
- # In order to enable or disable this script just change the execution
- # bits.
- #
- # By default this script does nothing.
- exit 0
可以把开机要执行的命令放到 exit0 前面。
B 添加开机脚本
1,新建个脚本文件new_service.sh
[plain] view plain copy
- #!/bin/bash
- # command content
- exit 0
2,设置权限
[plain] view plain copy
- sudo chmod 755 new_service.sh
3,把脚本放置到启动目录下
[plain] view plain copy
- sudo mv new_service.sh /etc/init.d/
4,将脚本添加到启动脚本
执行如下指令,在这里90表明一个优先级,越高表示执行的越晚
[plain] view plain copy
- cd /etc/init.d/
- sudo update-rc.d new_service.sh defaults 90
移除Ubuntu开机脚本
[plain] view plain copy
- sudo update-rc.d -f new_service.sh remove
---------------------
作者:M1dor1ya
来源:优快云
原文:https://blog.youkuaiyun.com/qq_29113041/article/details/78675396
版权声明:本文为博主原创文章,转载请附上博文链接!