【linux基础】如何开机自启动某个程序-linux工具-ubuntu
前言
实际使用中应用程序或者服务需要开机自启动,而不是人为手动开启运行,那么,该如何做呢,本文对此进行介绍。
操作过程
一、使用startup applications工具
1. 确定系统的桌面环境;
具体可参考here;
2. 如何自启动;
博主ubuntu系统的桌面环境是Unity,这是一款ubuntu自家的桌面环境,使用startup applications工具进行开机自启动。
在Unity Dash中键入"startup"(启动)。一旦"Startup Application"(启动应用程序)图标出现,就点击该图标。
一旦"Startup Applications Preferences"(启动应用程序首选项)窗口打开,添加一个paogram,
输入"Name"(名称)、"Command"(命令)和"Comment"(注释),即可配置自动启动的某个程序。
一定要注意,这里使用的是所有路径都必须是绝对路径,包括应用程序中涉及到的目录。
3. 如何关闭自启动的程序;
直接使用ctrl+C不管用,程序还能继续正常运行;
killall program_name
4. 如果运行程序的命令带有参数,直接将运行的命令、参数写入command,并不可以;将所运行的命令写入shell文件,将shell文件写入command中,也是不可以的;
二、使用rc.local脚本
1)这个方法试了好几次也没有成功;如果在exit 0之前,添加mkdir的命令,reboot之后发现在指定目录下是可以新建目录的;
说明还是最后添加的要运行程序的命令的运行有问题,但是直接运行该命令是没有问题的,绝对路径、sleep、bash/sh都试过了;
2)感觉rc.local没有运行成功,rc.local默认的执行用户是root,权限也是。
killall -QUIT uwsgi是异步的,中间要sleep 1,歇一秒,不然直接start会继续被杀掉。
3)在shell执行命令后加&是为了让应用程序在后台运行,rc.local也是一个脚本,主进程在运行这个脚本时必须能够返回,如果在这个脚本里面执行了一些死循环或者其他无法返回的任务,整个系统就很可能卡死在这里,无法启动,所以在这里运行的用户程序必须是能够返回或者本身就使用一些后台运行的进程。
4)关机自启动之后查看可执行是否自启动,是可以看到结果的,但是很快就结束了。。是因为可执行文件后带有参数嘛???
ps -ef | grep exec_name
按照步骤操作,最后一步关机重启的时候,程序没有开机自动启动;
运行级别
$ runlevel
N 5 # output
update 20220725
红绿灯项目,试过几个博客的方法,都没有成功,最后还是修改了源代码,直接使用startup applications工具完成;难道和带有参数有关???
使用不带参数的程序测试了rc.local和init.d两种方法,还是没有成功;
参考
1. 七大Linux桌面介绍:Unity、KDE、GNOME等等;
3. How To Manage StartUp Applications In Ubuntu;
4. manage-startup-applications-ubuntu;
7. 使用init.d目录;
完
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】