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 添加程序开机自动启动的方法 ...UBUNTU 添加程序开机自动启动可以通过多种方法实现,包括开机启动时自动运行程序、登录时自动运行程序、退出登录时自动运行程序、定期自动运行程序和定时自动运行程序一次等。
在Ubuntu系统中,后台持续运行Python程序是许多开发者和系统管理员需要掌握的重要技能。这尤其适用于需要长时间运行的任务,如数据分析、服务器监控或自动化任务。本文将深入探讨如何在Ubuntu环境下实现这一目标,并...
ubuntu tmux 自动执行shell脚本,可创建多个session,多个window。多个panes, 平铺所有的panes,对指定session下指定window的指定panes发送指定的多条命令,后台创建! 稍微修改可做成自己的自启动脚本,
在这一过程中,可以通过修改特定的脚本文件来实现开机自动启动程序的需求。 #### 三、Ubuntu开机自启动方法详解 ##### 1. **开机启动时自动运行程序** - **Linux引导过程**:当Linux系统加载后,首先运行的是`...
在Ubuntu系统中,为了实现特定服务或程序的开机自动启动,我们可以编写shell脚本并将其配置为系统的服务。下面将详细介绍如何在Ubuntu中编写和设置shell脚本来实现这一功能。 首先,我们需要创建一个shell脚本文件...
1. 启动顺序 2. 对于开机启动程序,需要关注4个地方(排序有分先后) 3. 新建启动脚本 4. 直接添加到rc.local 5. 退出登录时自动运行程序 6. 定期自动运行程序 7. 定时自动运行程序一...8. 依赖于图形界面的自动运行程序
在IT行业中,软件自动化安装脚本是提高效率和减少人为错误的重要工具,特别是在大规模系统部署时。本主题主要关注在Linux环境下使用Shell脚本来实现Java Development Kit (JDK) 和 PostgreSQL 数据库的自动化安装。 ...
为了使自定义的程序能在系统启动时自动运行,需要进一步修改启动脚本: 1. 在`/usr/bin`目录下复制`startx`文件,并重命名为`MyUIstartx`。 2. 在`MyUIstartx`脚本中,添加一行代码指定Qt程序的路径,如`client="/...
内容概要:本脚本基于生产大量jar需要启动而编写,提升启动效率。通过参数可以实现目录下所有jar的循环启动以及单个目录下的jar包启动。 适用人群:生产环境运维人员,需要大量启动jar包的人员、需要设置开机自启动...
在Ubuntu 14.04系统中,设置开机启动脚本是管理自定义服务和程序自动化启动的关键步骤。本文将详细介绍如何创建并配置一个开机启动脚本来确保在系统启动时执行特定的命令或脚本。 首先,我们关注的是`rc.local`脚本...
以下是关于如何使Linux系统上的程序开机后自动运行的详细说明: 1. **Linux启动流程** - **init进程**:Linux系统的启动是从init进程开始的,它是所有其他进程的祖先。init根据/etc/inittab配置文件来决定系统的...
假设我们需要设置名为`run`的程序在Ubuntu系统开机时自动启动。 - **步骤1**:创建服务脚本 在`/etc/init.d/`目录下创建一个新的脚本文件,例如`dustServer`,并添加以下内容: ```bash #!/bin/bash cd /home/...
在Ubuntu操作系统中,设置开机自启动应用程序是一种常见的需求,尤其对于开发者或系统管理员而言,确保某些服务或程序在系统启动时自动运行是非常重要的。这里我们将详细介绍如何在Ubuntu中配置开机时通过终端运行...
现在,你的Ubuntu系统已经成功配置了Tomcat自启动脚本,每次启动时Tomcat会自动运行。如果你需要禁用自启动,只需执行`sysv-rc-conf tomcat_fusion off`即可。 通过以上步骤,你可以方便地在Ubuntu环境中管理和控制...
在Linux系统中,让程序开机自动运行是一项基本的需求,尤其对于服务器环境而言,确保服务在系统启动时自动启动是至关重要的。本篇文章将详细介绍一种简单有效的方法,适用于那些需要开机自启动的应用,如Apache、...
在Linux操作系统中,开机自启动脚本和软件一键打包脚本是两个重要的工具,它们分别服务于系统的自动化管理和软件的分发部署。 首先,让我们详细探讨一下Linux下的开机自启动脚本。在Linux系统中,开机自启动脚本...
这样,每次登录或开机时,脚本都会自动运行,阻止Caribou启动。 4. 或者,可以将该脚本设置为定时任务(如使用`cron`),每隔一段时间检查并阻止Caribou运行。 5. 最后,重启系统,测试是否成功禁用了Caribou。 ...
在计算机系统中,设置程序在开机时自动启动是一项常见的需求,尤其对于那些需要定期运行的服务或工具来说。这里,我们将详细探讨如何在不同操作系统中实现这一功能,包括Windows、macOS和Linux。 **Windows系统** ...
在Ubuntu系统中,添加启动项是为了让某个程序在系统启动时自动运行,这对于服务型软件或者需要持续后台运行的应用尤其重要。这篇博文链接虽然没有提供,但从标题来看,可能涉及如何在Ubuntu上设置开机启动一个名为`...
通过DNW,Ubuntu用户可以无缝地在Linux环境中运行Windows应用程序,这对于跨平台开发和测试特别有用。它简化了在Linux主机上管理Windows容器的过程,使得开发者无需在不同的操作系统之间切换,提高了工作效率。 ...