Linux设置程序开机自启动大致有三种方法。

一、通过rc.local设置自启动

通过在/etc/rc.local的文件夹下添加shell指令即可在开机时自动启动指令。其内容的格式举例如下:

#!/bin/sh

sudo mkdir /test

该例子便是在开机时在根目录下创建新文件夹/test,同理也可以运行其他程序,会编写sh的可以把所用的指令写进sh文件后在rc.local启用sh文件即可。这种方法比较方便便捷,但这种方法也有一定的特殊性和局限性。

rc.local的启动是在用户登录之前,对于整个系统开机而言的启动程序执行,当程序执行完成后才会进入用户界面,所以当开机启动项过多,那么系统开机的时间就会变长。并且rc.local只能运行命令行程序,无法运行带界面的程序,运行带界面的程序会报错无法运行然后直接跳过该程序。

二、通过autostart运行

这种方法是首先在/usr/share/applications/目录下创建一个名为QRDecode.desktop的启动配置文件,然后加入以下代码:

[Desktop Entry]

Version=1.0

Name=QRDecode

Exec=/home/test/QRDecode    #这是那个可执行程序所在完整路径,如果程序有附加输入参数,也可以跟在后面添加,并用空格隔开

StartupNotify=false

NoDisplay=true

Type=Application

Categories=System;Utility;Archiving;

将这个文件拷贝到/etc/xdg/autostart目录下,然后重启即可运行(可以运行GUI程序)

在这里说明一下,这个文件的文件名可自定义,但文件后缀很重要,不能更改丝毫。然后也只有将该文件复制在/etc/xdg/autostart文件目录下才会生效,如果文件路径有所变化,记得也需要及时找到该文件并更改程序路径。这种运行方式可以运行带界面的程序。并且在用户登录之后才会运行。如果想要完全意义上的开机自动运行,需要设置成用户自动登录。一般情况下,推荐使用这种方法。

三、代替系统界面运行程序

如果想要代替系统界面去运行一个程序,即把应用程序当作系统桌面去启动,则可以使用此方法。

在/etc/profile文件的开头添加执行程序的命令。如:

cd /home/username/workspace

./hello

或者直接写:

/home/username/workspace/hello

注意,此方法实现后如果需要改回去,可以通过进入tty命令行界面进行修改操作,快捷键是:Ctrl+Alt+F1,注意,F1、F2一直到F6都可以进入tty界面,只不过每一个界面都是单独的一个界面。另外此方法有一点需要注意的是,如果是自己开发的程序,比如通过QT开发的程序,通过此方法在开机自启动运行后,是不会显示程序右上角那一行的,包括程序名和最小化最大化和关闭按钮,所以如果为了方便调试与开发建议程序里添加按钮之类的可以关闭程序功能,这样如果想回到系统可以通过关闭程序返回系统。但如果是自己开发的依旧建议用第二种方法,并在程序里添加默认全屏显示的功能依然可以达到和第三种一样的效果。且界面显示等不会有其他意外的情况。

综上,以上便是个人总结的Linux下设置开机自启动的程序的方案。基本都是在网上找寻方法以及个人使用感受所得。如你有更好的方法,欢迎评论分享。

Linux下添加开机启动,Linux设置程序开机自启动相关推荐

  1. uefi怎么添加linux启动项,linux下添加UEFI启动项

    今天突然发生了一件怪事,系统重启后没有了硬盘的uefi启动项, 吓了我一跳,我以为硬盘挂了,立即进livecd查看硬盘信息,好在一切正常. 我的电脑通常会自动添加应该第一分区(esp分区)里的一些启动 ...

  2. linux学习-将seafile启动脚本设置为开机启动服务

    有时候,我们安装的linux软件和程序不是通过yum安装,而是通过编译或者其他方式安装.有时需要将程序设置为服务,达到开机启动的目的. 我在公有云的与服务器上搭建了seafile网盘,当我重启云服务器 ...

  3. Linux下main函数启动过程【程序员自我修养笔记】【自用】

    1. 入口函数和程序初始化 1.1 程序从main开始吗? 当程序执行到main函数的第一行时,很多事情都已经完成了: [证1]如下是一段C语言代码: 代码中可以看到,在程序刚刚执行到main的时候, ...

  4. linux下安装nginx启动,Linux下安装启动nginx的过程

    1.首先将nginx的安装包传到虚拟机里的/home目录下 2.为了方便nginx运行而不影响linux安全需创建组合用户 groupadd -r nginx useradd -r -g nginx  ...

  5. Linux下添加计划任务,Linux系统下使用crontab添加计划任务的方法

     在服务器中添加定期执行的任务,在很多情况下是非常必要的.比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等.这样计划任务就显得尤为方便.下面将介绍如何在Linux系统中 ...

  6. linux下tomcat不能启动,linux系统中的tomcat无法启动怎么解决

    linux系统中的tomcat无法启动怎么解决 发布时间:2020-06-20 16:44:39 来源:亿速云 阅读:325 作者:Leah linux系统中的tomcat无法启动怎么解决?相信很多没 ...

  7. linux下添加中文包,LINUX下中文语言包的安装

    解决Centos 5.8系统不能显示中文的异常: 1.安装如下软件包: fonts-chinese-3.02-9.6.el5.noarch.rpm fonts-ISO8859-2-75dpi-1.0- ...

  8. mac开机启动mysql_mac 设置mysql开机自启动

    1.编辑一个mysql启动文件. 在终端里面输入: sudo vi /library/launchdaemons/com.mysql.mysql.plist 2.输入启动文件内容: keepalive ...

  9. Linux 设置程序开机自动启动

    目录 1. 基础说明 2. 编辑启动文件 3. 给启动文件添加权限 4. 设置软连接 1. 基础说明 将程序设置为开机启动的方法不止一种,这里记录的,应该是最常用的一种. root用户执行命令:ll ...

  10. linux下添加开机启动程序、脚本、服务

    1 开机启动配置文件 在linux开发中会遇到需要系统开机时运行或者加载自己的程序或者脚本等.linux系统在开机时会自行加载一些配置文件,可以通过修改配置文件方式,实现开机启动自己的程序.服务等.系 ...

最新文章

  1. CPU 有个禁区,内核权限也无法进入!
  2. pat-1136. A Delayed Palindrome (20) 模拟
  3. python如何运行py程序_如何用Python汇款:Web3.py教程
  4. 思科怎么修改dhcp服务器地址,思科交换机配置作为DHCP服务器的配置方法是怎样的?...
  5. clang 编译过程
  6. Linux内核与Linux操作系统的区别,[科普] Linux 的内核与 Linux 系统之间的关系
  7. 查询oracle表空间有什么数据,oracle查询表空间使用情况与查询有哪些数据库实例在运行...
  8. javascript闭包小结
  9. 安装ECShop报 Non-static method cls_image::gd_version() should not be called statically 解决方案
  10. 电脑如何录制正在播放的视频 这个方法太简单了
  11. macOS 安装 Win11 常见问题及解决方案
  12. 【Verilog基础】Verilog语法之标量(Scalar)与向量(Vector)
  13. 美国东北大学khoury计算机学院,美国东北大学人工智能专业
  14. 【Python笔记】第5章 if语句
  15. web视频(点播/直播)播放器选型
  16. 互联网+大赛作品_“颂中国力量 绘美好梦想”全市中小学生互联网+书画大赛作品展示(二十二)...
  17. 时间序列预测框架--Darts--快速开始(下)
  18. Unity3D 如何干净的解除父子关系
  19. 阿里“中供系”前世今生:马云麾下最神秘的子弟兵
  20. 高德地图 点击获取坐标

热门文章

  1. 阿里云服务器升级openssl1.1.1k 2021-07最新
  2. TDMA WIFI 技术
  3. 会员(用户)数据化运营——分析模型
  4. 2019各个省会城市全新DNS大全一
  5. 棋盘中正方形,长方形个数
  6. 微雪云进销存ERP功能很强大,你忍一下。
  7. 典型行业大数据应用和安全风险和解决方案
  8. java中常见的NullPointerException异常
  9. 服务端(java)实现微信支付二次签名
  10. Element UI 前端分页