您的位置:首页 > 娱乐 > 八卦 > 国际新闻最新战争消息_b2b电子商务网站排名_免费开通网站_太原建站seo

国际新闻最新战争消息_b2b电子商务网站排名_免费开通网站_太原建站seo

2025/4/8 0:36:18 来源:https://blog.csdn.net/jcf5832/article/details/146521413  浏览:    关键词:国际新闻最新战争消息_b2b电子商务网站排名_免费开通网站_太原建站seo
国际新闻最新战争消息_b2b电子商务网站排名_免费开通网站_太原建站seo

一、前言

想要实现程序的开机自启有很多种方案,我这里只介绍我使用过的两种方案

1.Systemd服务

    systemd 是 Linux 系统中用于集中管理和服务配置的系统和服务管理器。它替代了之前的 SysV init 系统,提供了更高效的并行化启动能力,并引入了许多新特性来简化服务管理。使用 systemd 来管理服务,可以确保这些服务在系统启动时自动运行、按需启动或在故障时自动重启等。

2.profile脚本

    在Ubuntu Linux系统中,/etc/profile 文件是一个Shell脚本,它在启动一个交互式的登录Shell时被读取和执行。这个文件主要用于系统范围的环境变量设置和启动程序的配置,适用于所有用户。因此,它对于需要对所有用户可用的环境变量或通用Shell配置非常有用。

二、profile脚本

这个脚本的基本用途有:环境变量设置、用户shell初始化、自定义命令执行、路劲模块初始化。

  1. 环境变量设置:可以在这个文件中定义系统范围的环境变量,如 PATHUSERLOGNAMEHOSTNAMEMAIL 等。这些环境变量为所有用户会话提供默认值。

  2. 用户Shell初始化:当用户登录时,/etc/profile 会被首先执行,之后才会执行用户的个人Shell初始化文件(例如 .bash_profile.bashrc)。这使得 /etc/profile 成为了设置全局Shell环境的理想位置。

  3. 自定义命令执行:可以在该文件中添加任何你希望在用户登录时自动执行的命令。例如,可以设置提示符格式,显示欢迎信息等。

  4. 路径模块初始化:如果系统使用了类似 module 的工具来管理应用程序环境,通常也会在这里进行初始化。

使用也比较简单,直接在这个文件后面添加想要执行的命令语句,可以写入可执行程序名、脚本、命令行等语句。

脚本内容:

感兴趣的可以去研究一下脚本的功能,要是只想做开机自启动就没有必要知道原厂写的是什么意思。

使用方法:想要通过这种方法实现开机自启动程序,只需要在这个脚本后面加上你要执行的语句(要使用绝对路径)然后在加上一个&符号和|符号就可以了

注意:使用这个脚本添加自启动语句必须要加上&符号和|符号,不然文件系统会出现问题。

三、Systemd服务

Systemd服务具体是什么我就不过多介绍了直接上使用方法。

1:先到达这个服务所在的位置

路径为:

/etc/systemd/system

可以看到里面有很多.service的程序

我们所要做的就是创建一个自己的服务,也就是创建一个自己的.service程序。

2:打开创建好的服务程序编写服务代码

使用vim打开服务代码,这个可以使用AI生成一个你想要的的程序,我这里给的是一个开机自启点亮一个led灯的示例

Led灯的示范程序
[Unit]
Description=LED Control Service//简单描述服务的名字
After=network.target //这个主要是在那个服务之后启动,当前设置的为在网络模块后启动[Service]
ExecStart=/bin/bash /jcf/led.sh	//设置启动的可执行程序路径
TimeoutStopSec=2
KillMode=control-group
Restart=always//总是重启
User=root//用户角色

我在网上看到别人也有介绍比较完整的例子我也一并呈现。

[Unit]
Description=WebServer    # 简单描述服务
After=network.target     # 指定服务模块启动后再启动(网络模块启动)[Service]
User=mhf                 # 设置服务运行的用户,带图形界面的程序最好使用普通用户运行,否则可能会启动失败,自己系统的用户名
WorkingDirectory=/home/mhf/Code/bin64      # 设置进程的工作目录
ExecStart=/home/mhf/Code/bin64/ChatServer  # 设置启动的可执行程序路径
Restart=always                             # 设置进程 退出后的重启方式 always:总是重启
RestartSec=5                               # 重启服务之前需要等待的秒数
Environment=DISPLAY=:0   # 带图形界面的程序必须指定运行桌面环境,否则会启动失败
# 环境变量 DISPLAY 告诉GUI程序如何与GUI通信。Unix系统可以运行多个X服务器,即多个显示。这些显示可以是物理显示(一个或多个监视器),或远程显示(通过网络转发,例如通过SSH),或虚拟显示,如Xvfb等。指定显示的基本语法是 HOST:NUMBER ;如果忽略 HOST 部分,则显示为本地显示。
# 显示从0开始编号,因此 :0 是启动的第一个本地显示。在典型的设置中,这是显示在计算机显示器上的内容。[Install]
WantedBy=multi-user.target

具体使用那种根据自己的需求来进行设置。

3:使用命令操作这个服务

上面的工作只是把这个服务给写好了,但是还不能实现想要的功能

编写完服务程序后要重新加载

systemctl daemon-reload xxxx.service

启动服务

systemctl start name.service  # 启动服务

关闭服务

systemctl stop name.service  # 关闭服务

重启服务

systemctl restart name.service  # 重启服务

开机自启服务

systemctl enable name.service # 开机自启服务

开机不自启服务

systemctl disable name.service # 开机不自启服务

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com