文章目录

  • Linux下设置程序开机自启动
    • 1、/etc/rc.local
    • 2、/etc/profile.d/
    • 3、使用 crontab 方式
    • 4、使用 systemd 服务
    • 测试代码

Linux下设置程序开机自启动

在最后,我放了我测试时候要开机自启程序的源码逻辑。

1、/etc/rc.local

如果没有该文件,则创建该文件

vim /etc/rc.local

在文件末尾加上你开机需要执行的命令即可(写绝对路径,添加到系统环境变量的除外)

#!/bin/bash/home/czy/test/test &

可以使用reboot命令重启虚拟机,

[Ubuntu]重启之后会执行/etc/rc.local文件中的脚本

注意:这里的绝大多数操作都是需要在root用户或sudo权限才能操作的

在此之前,我先看到的一个方法是/etc/rc.d/rc.local

但是这个方法,我怎么都试不成功,如果有人知道怎么设置或知道问题出在哪的话,欢迎指点

在这里插入图片描述

这里可以看到是没有 test.log 文件生成,也就是程序没有执行

2、/etc/profile.d/

自己写一个shell脚本

将写好的脚本(.sh文件)放到目录

/etc/profile.d/

下,系统启动后就会自动执行该目录下的所有shell脚本。

这个和上面/etc/rc.local的区别是,这种设置方法会提示程序已经执行完毕~~~

3、使用 crontab 方式

crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

因此我们可以使用 crondtab 命令创建一个任务,让该任务在重启时进行执行。

# crontab -e
//进入编辑,输入如下行
@reboot /home/czy/test/test
//这个路径自己决定就好//上面我用的是可执行程序,使用脚本当然也是可以的
@reboot /home/czy/test/test.sh

这里可以看到重启前是没有log文件的

reboot 重启后,程序已执行

4、使用 systemd 服务

Systemd 服务是一种以 .service 结尾的单元(unit)配置文件,用于控制由 Systemd 控制或监视的进程。简单说,用于后台以守护进程(daemon)的形式运行程序。

systmd service 文件一般放在/etc/systemd/system/文件夹中。

创建一个服务如下:

//在/etc/systemd/system/下创建一个服务,如下
# vim ser.service//[Unit] 区块:启动顺序与依赖关系。
//Description字段给出当前服务的简单描述[Unit]
Description=Run a test Script at Startup//Service区块定义如何启动当前服务
//ExecStart字段:定义启动进程时执行的命令[Service]
ExecStart=/home/czy/test/test.sh//Install区块,定义如何安装这个配置文件,即怎样做到开机启动
//WantedBy字段:表示该服务所在的 Target,Target的含义是服务组,表示一组服务[Install]
WantedBy=default.target//更新服务配置文件,并使能服务
# systemctl daemon-reload
# systemctl enable test.service//重启系统
# reboot

一个问题:

就是service部分如果是执行脚本的话,程序就只执行了一轮

[Service]
ExecStart=/home/czy/test/test.sh

如果service部分ExecStart后面跟的是可执行程序的话,又能正常执行

[Service]
ExecStart=/home/czy/test/test

望各位大佬指点

Linux下如何设置程序的开机自启动功能相关推荐

  1. linux下chkConfig的用法,mysqld开机自启动

    linux下chkConfig的用法,mysqld开机自启动 使用语法: chkconfig[--add][--del][--list][系统服务]或chkconfig[--level<等级代号 ...

  2. ubuntu等linux下自定义设置程序代理工具proxychains简介

    在linux下,有时候我们想给一个程序设置代理,但是程序自身却不具备设置代理的配置选项,这时候并不是无法给程序设置代理,今天奶牛为大家推荐一款比较实用的linux下的自定义设置程序代理的工具proxy ...

  3. Windows下怎样设置jar包开机自启动运行

    场景 在Windows服务器上部署jar包运行. 但是如果自己搭建的服务器或者是电脑重启后就就需要重新运行jar包. 怎样设置在Windows开机后自动运行jar包. 注: 博客: https://b ...

  4. oracle服务开机启动,Linux下建立Oracle服务及其开机自启动

    操作环境:CentOS 6.7 + Oracle 11gR2 手工启动Oracle实例: 启动数据库: sqlplus / as sysdba startup 手动启动监听: lsnrctl star ...

  5. Windows设置程序 .bat 开机自启动

    目录 1.打开启动文件夹 2.将需要开机自动启动的程序的快捷方式拷贝到里面即可 3.重启系统验证

  6. Linux 设置 jar 包开机自启动

    概述 初步学习Springboot编写服务,尝试部署到Linux环境下,并进行开机自启动. Linux系统:Centos7.6 Java包:xxx.jar 流程 将 xxx.jar 包(及外部配置文件 ...

  7. LINUX环境:MySQL和Oracle开机自启动

    MySQL配置自启动 #将MySQL的启动服务添加到系统服务中,设置开机自启动:(chkconfig 命令redhat系统的) 创建软连接: [root@ethan-testdb ~]# ln -s ...

  8. centos7php自启动,centos7系统下nginx安装并配置开机自启动操作

    这篇文章主要介绍了centos7系统下nginx安装并配置开机自启动操作方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 这篇文章主要介绍了centos7系统下nginx安装并配置开机自启动操作 ...

  9. Linux 下几款程序内存泄漏检查工具

    Linux 下几款程序内存泄漏检查工具 chenyoubing | 发布于 2016-07-23 10:08:09 | 阅读量 93 | 无 写这篇博客的原因呢是因为自己在编写基于Nginx磁盘缓存管 ...

最新文章

  1. 邮件服务器SMTP概述
  2. blender 导出 obj 格式,3dsmax 导入3ds max obj 格式数据
  3. IPython4_Notebook
  4. AndroidStudio直接通过gradle无mk编译生成so
  5. Spring Boot Jpa多数据源配置
  6. __eq___C ++'and_eq'关键字和示例
  7. CSS之Multi-columns的column-gap和column-rule
  8. 20162303 队列加分项-杨辉三角
  9. 计算机科学与量子信息处理,量子计算交叉学科
  10. 佳能mp236打印机驱动 官方版
  11. shell脚本复制文件
  12. 如何把txt文本转换成epub文件
  13. 通俗易懂说单因素方差分析表
  14. python——基础应用:顺丰快递分拣小程序的实现
  15. Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined) G. Sum the Fibonacci(子集卷积)
  16. selenium: 网页打开最大化
  17. winform的RichTextBox设置网格线,类似word的稿纸效果
  18. Java写一个矩阵输出并输出它的转置
  19. 显卡驱动版本 与 cuda版本
  20. 魔兽世界怀旧服务器无限刷怪点,魔兽世界怀旧服50级刷怪地点汇总

热门文章

  1. Selenium一些特殊情况的处理:失去焦点、点击不生效、长页面处理、先触发事件才能动态加载的元素、日期输入
  2. 计算机终端机 大型游戏,云电脑让各种终端玩转大型游戏
  3. 系统分析师近几年论文走向
  4. 前端和Java后端分别需要学哪些技术?
  5. “努力就会成功”--左耳朵耗子谈996
  6. 基本的计算机结构知识----基础向
  7. Ubuntu Snap商店代理设置方法
  8. .c和.h文件的区别
  9. 算法:分治策略和递归1 | 通过迭代来学习递归
  10. svn修改提交日志信息