方法一、编辑rc.loacl脚本 

  Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本。在 exit 0 前面添加好脚本代码,如:

!/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. echo "hello start up script!" > /home/sc/Desktop/mystart.txt exit

  重启后可以在桌面上看到生成的mystart.txt文件。

方法二、添加一个Ubuntu的开机启动服务

  如果要添加为开机启动执行的脚本文件,可先将脚本复制或者软连接/etc/init.d/目录下,然后用:update-rc.d xxx defaults NN 命令(NN为启动顺序),将脚本添加到初始化执行的队列中去。

  1) 新建一个脚本文件 test.sh
#!/bin/bash
# command content
echo "hello start up script!" > /home/sc/Desktop/mystart.txt
exit 

  2) 将脚本放置到启动目录/etc/init.d

sudo mv test.sh  /etc/init.d/
  3) 设置脚本文件的权限
cd /etc/init.d/
sudo chmod 755 test.sh

  4) 将脚本添加到启动脚本中

sudo update-rc.d  test.sh  defaults  

  其中数字90是脚本启动的顺序号,数字越大表示执行的越晚,按照自己的需要相应修改即可。

  重启后可以在桌面上看到生成的mystart.txt文件。

  移除ubuntu开机脚本:

sudo update-rc.d -f test.sh remove

 

方法三、桌面环境下设置开机自启动

  从Xfce桌面菜单中选择"Settings Manager"(设置管理器)。在"Settings"(设置)窗口中,点击"Session and Startup"(会话和启动)图标。

  在"Application Autostart"(应用程序自动启动)选项卡下,点击底部的"Add"(添加)按钮,添加自启动程序。
  或者在终端中执行:gnome-session-properties,会弹出一个“启动应用程序首选项”的菜。点击添加会弹出下面的这个对话框:在名称中写入要启动应用的名字,命令是这个应用的可执行程序的位置,一般的可执行程序都在/usr/bin目录下。注释可写可不写:
 
  设置好后可以输入指令立即重启:sudo shutdown -r now ,开机后会自动执行用户编写的GUI程序:
 
   如果是控制台程序,可以在Command输入如下命令:
gnome-terminal -x  /home/sc/Desktop/test

  gnome-terminal打开一个新的终端,-x参数后面的内容是要执行的命令。重新启动后可以看到gnome终端模拟器中打印出Hello world!

  如果执行完后一闪而过,一种方法是修改terminal的配置,选择Edit→Profile Preferences→Title and Command,里面有一项When command exits,选为Hold the terminal open就可以了。
 
参考:

最新文章

  1. WebService -- Java 实现之 CXF ( 添加系统预定义的拦截器)
  2. 【Mail】JavaMail介绍及发送邮件(一)
  3. echarts X轴数据显示不全问题
  4. rpm安装和卸载软件
  5. struts2文件下载及 <param name="inputName">inputStream</param>的理解
  6. 从零开始学android开发-四大组件之一 Activity
  7. SQLite入门与分析(六)---再谈SQLite的锁
  8. [HDOJ 5212] [BestCoder Round#39] Code 【0.0】
  9. confluence的权限管理
  10. Java 网络编程(三) 创建和使用URL访问网络上的资源
  11. 云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)
  12. iOS开发--Runtime的简单使用之关联对象
  13. python定时利用QQ邮件发送天气预报
  14. SDP(12): MongoDB-Engine - Streaming
  15. 【Thread】CountdownEvent任务并行[z]
  16. 面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)
  17. eclipse web module版本问题:Cannot change version of project facet Dynamic Web Module to 2.5.
  18. springmvc为什么是线程不安全的
  19. DAX2012 R3安装
  20. winrar5.50去广告教程(仅供学习使用)

热门文章

  1. C#与Java 的区别
  2. caffe 生成检测框并绘图
  3. jquery click()方法模拟点击事件对a标签不生效的解决办法
  4. Asp.net MVC 如何防止CSRF攻击
  5. aspnet_regiis -i VS 20XX 的开发人员命令提示符
  6. 构建配置 defaultConfig signingConfigs buildTypes productFlavors dependencies
  7. 【Scala】Scala-使用ExecutorService-等待所有线程完成
  8. [Docker] Converting from Docker Compose to Kubernetes
  9. HotSpot Java虚拟机中的“方法区”“持久代”“元数据区”的关系?
  10. log4j和web.xml配置webAppRootKey 的问题(一个tomcat下部署多个应用)