1.开机启动时自动运行程序
Linux 加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。
开机后还要自动运行很多服务,如mysql,memcache等。
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
注意不是自动运行.bashrc脚本,而是.profile脚本。
可以看看源码.profile:
# if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then ,.. "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
可以看出,我们平时使用的.bashrc文件,仅仅是被.profile脚本加载的。
所以很多同学默认是zsh会导致纯粹按照某些文章指示编写.bashrc脚本的环境变量不起作用,比如使用rvm的。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。
因为.bashrc或者说.profile文件是在登录时才执行的,如果不登陆能执行么,或者说如果要运行服务怎么办,此时并没有某个用户登陆,也就麽有相应的环境变量了。
比如启动rails的服务的www用户。
使用sudo命令的参数-i
查看manue:
-i [command]
The -i (simulate initial login) option runs the shell specified by the password database entry of the target user as a loginshell. This means that login-specific resource files such as .profile or .login will be read by the shell. If a command isspecified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shellis executed. sudo attempts to change to that user's home directory before running the shell. The security policy shall initialize the environment to a minimal set of variables, similar to what is present when a user logs in. The Command Environment section in the sudoers(5) manual documents how the -i option affects the environment in which a command is run when the sudoers policy is in use.
相关推荐
ubuntu tmux 自动执行shell脚本,可创建多个session,多个window。多个panes, 平铺所有的panes,对指定session下指定window的指定panes发送指定的多条命令,后台创建! 稍微修改可做成自己的自启动脚本,
是我的博客 在Ubuntu下后台持续运行Python程序 的配套代码,包含了启动和停止脚本
ubuntu自动挂载硬盘,u盘、sd卡脚本,后台自动执行本脚本,存储设备将自动挂载
主要介绍了ubuntu中编写shell脚本开机自动启动,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
Ubuntu开机自动禁用无线网络的设置方法,适用于各个版本,其它linux也可参照使用,便于笔记本操作
ubuntu开机自启动nginx服务
在UBUNTU环境有多种应用,但很多UBUNTU环境应用介绍的书却未涉及UBUNTU添加程序开机自动启动的方法,这篇总结不错,有需要的下载。
ubuntu自动安装nginx php脚本ubuntu自动安装nginx php脚本
ubuntu执行.sh文件,1 .sh文件是Ubuntu下可执行文件,首先需要确定它的权限是否是可执行的,2、 用vim打开sh文件,3、查看文件格式:4. 修改文件格式: 5. 保存退出: 6. 执行:./filename 注意:不可以用sh ...
1. 启动顺序 2. 对于开机启动程序,需要关注4个地方(排序有分先后) 3. 新建启动脚本 4. 直接添加到rc.local 5. 退出登录时自动运行程序 6. 定期自动运行程序 7. 定时自动运行程序一...8. 依赖于图形界面的自动运行程序
ubuntu下创建热点的脚本 ,更方便的管理笔记本的wifi. ./ap.sh 就可以打开wifi了 ./ap.sh close 关闭wifi
ubuntu deepin系统下自动安装配置jdk的shell脚本,省去繁琐重复配置
rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。 该脚本具体格式如下: #!/bin/sh -e # # rc.local # # This script is ...
Ubuntu下Repo工具安装与Android源码自动同步脚本,运行环境:Ubuntu 14.04 LTS,其他未测试
2. 添加开机启动程序 3.因为要用终端启动一个应用程序,所以command输入:gnome-terminal — 程序执行命令(gnome-terminal — roscore或者gnome-terminal — python3 PuttyCoatingRobot.py) 4.点击保存重启...
在Ubuntu 环境有多种应用,但很多Ubuntu 环境应用介绍的书却未涉及Ubuntu 添加程序开机自动启动的方法,这篇总结不错,有需要的下载。
OpenCV在Ubuntu上脚本自动安装,通过shell脚本,直接在linux环境下进行安装。若shell脚本不行,查看网络是否正常,实在不行,有pdf文件进行传统安装步骤。
/lib/plymouth/themes/主题名/*.script 里面去更改 Plymouth 的配置脚本,可以更改主题显示的文字,不透明度、背景颜色、时间、动画速度等
ubuntu 自动编译脚本 可以每周自动编译脚本,并把文件上传到服务器
ubuntu.sh脚本下载,用于LinuxonAndroid项目中的ubuntu 执行