1. 开机启动时自动运行程序 

Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置 
   文件继续引导过程,启动其它进程。通常情况下,修改放置在 
     /etc/rc或 
     /etc/rc.d 或 
     /etc/rc?.d 
   目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 
     /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本), 
   在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。

2. 登录时自动运行程序

(1) 用户登录时,bash先自动执行系统管理员建立的全局登录script : 
     /ect/profile 
   然后bash在用户起始目录下按顺序查找三个特殊文件中的一个: 
     /.bash_profile、 
     /.bash_login、 
     /.profile, 
   但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实 
   现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。

(2)14.04 and later

参考:How do I start applications automatically on login?

在Ubuntu14.04版本之后提供了更方便的autostart文件夹,可以在这个文件夹下设置启动项,设置方法有三种,如下:

方法一:GUI方法

  • Open the Dash and search for "Startup Applications"

  • Now click on Add and give in the command to run the application. This can be found in Main Menu if installed (see below) or as shown in this question.


方法二:使用其他程序:Using Main Menu (alacarte )

  • Firstly open the program 'Main Menu' (type Menu in the Dash)

  • Now select the program which you want to add to startup and click on properties .

  • Now note the command for that program .


方法三:Non GUI approach

Advanced users may want to put a .desktop file in ~/.config/autostart to run applications after a user login. This may have following content:

[Desktop Entry]
Type=Application
Name=<Name of application as displayed>
Exec=<command to execute>
Icon=<full path to icon>
Comment=<optinal comments>
X-GNOME-Autostart-enabled=true

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”的程序(“* 
   ”表示不管当天是星期几)。

5. 定时自动运行程序一次 
   定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自 
   动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件 
   中所给出的所有命令。也可直接从键盘输入命令: 
     $ at 12:00 
     at>mailto Roger -s ″Have a lunch″ < plan.txt 
     at>Ctr-D 
     Job 1 at 2000-11-09 12:00 
   2000-11-09 12:00时候自动发一标题为“Have a lunch”,内容为plan.txt文件内容 
   的邮件给Roger.

ubuntu 自添加开机启动程序
ubuntu (我的是 9.10)的开机启动会和 redhat suse 这些发行版会稍有差别,比如默认情况下没有 /etc/inittab 的配置文件,redhat 发行版在启动级别 3 上是文本模式登录,而 ubuntu 的启动级别2~5 都是一样的启动。现在,添加一个自定义的可执行文件或脚本,使其在开机启动时执行。

以一个脚本为例,脚本的内容很简单 :

引用 
#! /bin/sh

echo "hello start up script!" > /home/beyes/mystart.txt

exit 0

这个脚本的作用只是在我的家目录里建立一个文本文件,里面的内容就是 echo 后的内容hello start up script!。

编辑好这个脚本后,给其赋予相应的可执行文件,为了方便,就 chmod 777 /etc/init.d/mystart

接着在 /etc/rc5.d 这个目录下做一个软链接:  ln -s /etc/init.d/mystart /etc/rc5.d/S99mystart

那么,这个脚本开机启动生效了么?经过重启后,并没有发现在 /home/beyes 目录下生成 mystart.txt 文件。

使用 sysv-rc-conf 配置一下启动服务:
 
上图,在第 2 运行级别也配置了让 mystart 启动。这个 sysv-rc-conf 会读取 /etc/init.d 里的文件以及 rcx.d (x为运行级别)下的软连接等信息。关于更多管理启动项的更多信息见:
http://www.groad.net/bbs/read.php?tid-1392.html

配置完后,重启。再到 /home/beyes 里查看,生成了 mystart.txt 文件,里面也有相应的内容。从这里,也看到了 ubuntu 默认的启动运行级别为 2 。另外,在 /etc/rc2.d 目录下,也发现了由 sysv-rc-conf 生成的软连接: S99mystart

ubuntu开机自动运行程序
1.编写shell脚本
   gedit /etc/init.d/aa
   #!/bin/bash
   mplayer /home/aa.avi -fs -vo fbdev -vf scale=800:600 (fs全屏,vo进入桌面前使用,        scale设置画面大小)
2. chmod 755 /etc/init.d/aa    
3. ubuntu默认启动级别为2加载的脚本在/etc/rc2.d/
   ln -s /etc/init.d/aa /etc/rc2.d/s99aa (s为开始执行99为执行顺序aa为文件名)
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17826808.html

linux启动过程综述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/index.html

Upstart与ubuntu启动过程,简单原理
http://www.linuxdiyf.com/viewarticle.php?id=102927

Upstart: Ubuntu 的基于事件的启动进程
http://www2.oklinux.cn/html/Basic/azpz/20080504/52808.htm

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wbgeorge/archive/2010/05/19/5607425.aspx

Ubuntu添加开机自动启动程序方法的更多相关文章

  1. Ubuntu添加开机自动启动程序的方法

    文章出处:http://hi.baidu.com/gcc_gun/blog/item/fe9bbc4b84e911fa83025cb8.html 1. 开机启动时自动运行程序 Linux加载后, 它将 ...

  2. ubuntu添加开机自启和sysv-rc-conf

    此文ubuntu使用sysvinit,而非upstart UBUNTU添加开机自动启动程序方法 1. 开机启动时自动运行程序    Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程i ...

  3. linux下添加自动启动项,linux 开机自动启动脚本方法

    #service servicename status是当前状态#chkconfig --list servicename是查看启动状态,也就是是否开机自动启动 首先写好脚本,如 mysql,把它放到 ...

  4. [Windows][VC]开机自动启动程序的几种方法

    原文:[Windows][VC]开机自动启动程序的几种方法 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsof ...

  5. C#中级-开机自动启动程序

    一.前言 关于C#开机自动启动程序的方法,网上出现比较多的是修改注册表: 1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion ...

  6. 不同linux系统添加开机启动程序的命令

    see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...

  7. C# 开机自动启动程序

    原文:C# 开机自动启动程序 新建一个winform拖一个checkbox进来.. 然后设置它的changed事件. 已经测试过,可以直接复制使用. private void checkBox1_Ch ...

  8. VC++开机自动启动程序的几种方法 (转载)

    转载:http://blog.csdn.net/zhazhiqiang/article/details/51909703 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能 ...

  9. linux 开机自动启动脚本方法

    通过现场对这次天津iptv demo项目的调测.对iptv这套系统有了更好的认识和理解.由于iptv本身需要安装许多服务.而现场实施中有没有把这些需要启动服务的脚本加入到开 机自动运行中.如果服务器重 ...

随机推荐

  1. vi编辑器命令

    Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能.v ...

  2. EF多对多更新报错(TableNoTracking引发的bug)

    实体映射关系如下,SISTUser和SISTUserRoles存在多对多的关系,生成中间表 public partial class SISTUserMap: EntityTypeConfigurat ...

  3. php Your system does not support any of these drivers: gmagick,imagick,gd2

    缺少这些库时,安装 : apt-get install php5-gd 就可以.

  4. html5 websocket 实时日志推送

    http://blog.csdn.net/neutrojan/article/details/46119645

  5. 【Java EE 学习 83 上】【SpringMVC】【基本使用方法】

    一.SpringMVC框架概述 什么是SpringMVC?SpringMVC是一个和Struts2差不多的东西,他们的作用和性质几乎是相同的,甚至开发效率上也差不多,但是在运行效率上SpringMVC ...

  6. [MVC4]初识.NET MVC4

    最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行——asp.net,现在用.net做项目流行MVC,而 ...

  7. C# 通过模拟http请求来调用soap、wsdl

    C#调用webservice的方法很多,我说的这种通过http请求模拟来调用的方式是为了解决C#调用java的远程API出现各种不兼容问题. 由于远程API不在我们的控制下,我们只能修改本地的调用代码 ...

  8. oracle普通表转分区表(在线重定义方式)

    1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table(' ...

  9. CollectionView水平和竖直瀑布流的实现

    最近在项目中需要实现一个水平的瀑布流(即每个Cell的高度是固定的,但是长度是不固定的),因为需要重写系统 UICollectionViewLayout中的一些方法通过计算去实现手动布局,所以本着代码 ...

  10. HTML基础知识

    一个完美的web前端攻城狮,所具备的专业素养有:HTML5.XHTML.CSS3.JavaScript.JQuery.PS.PHP等.所以说,我要学的东西还有很多... 没别得,我也是一个H5的初学者 ...