博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux开机自动启动软件/可执行程序方法
阅读量:2029 次
发布时间:2019-04-28

本文共 734 字,大约阅读时间需要 2 分钟。

目录


修改那个脚本?

首先关注几个脚本

  1. /etc/rc.d/rc.local:该脚本在系统启动时被执行一次;
  2. /etc/profile:该脚本在所有用户登陆时会被执行一次;
  3. ~/.bashrc:该脚本在用户登陆时被执行一次,与/etc/profile不同的是,bashrc文件每个用户拥有独立的一个。

若设置开机启动,应该I修改:/etc/rc.d/rc.local文件。

添加什么内容?

首先,为了防止阻塞其他后续程序的执行,应该使用后台执行"&"。但仅仅通过后台执行是不可行的,被执行的程序有可能存在父进程退出的情况,这时,就需要使用systemd系统的守护进程(进程号为1)来启动该程序。

(xxx &)

当执行一个脚本,并希望使用1号进程启动它(终端关闭后,该程序不会被退出),可使用“(xxx &)”来启动进程,如:

当我们ping个主机时,命令如下:

ping 127.0.0.1 &  #后台执行

此时,该命令执行的父进程为该terminal的bash,当采用:

(ping 127.0.0.1 &)执行时,他的父进程就变成了1号进程,当我们关闭执行该命令的终端terminal时,该命令也不会被终止。

nohup

nohup your_command & 这样命令在你退出后仍然会在后台执行

setsid

该命令的结果是使你所运行的命令的父进程为init,所以只有关机该进程才会停止。

setsid your_command

此外可能还需要一些其他的工具辅助,比如当开机启动的程序依赖于系统的其他执行程序,那么我们就需要在启动过程中使用延时启动,比如:

at now+1 minutes < /your/path/yourexec &

延时1分钟启动。

转载地址:http://pdpaf.baihongyu.com/

你可能感兴趣的文章
curl命令的用法
查看>>
远程访问云服务器问题
查看>>
git分支与版本管理、版本回退、冲突解决记录
查看>>
git常用命令自己总结
查看>>
js数组常用方法总结
查看>>
js数组方法大全
查看>>
JAVA字符串格式化String.format()的使用
查看>>
java中String.Format用法
查看>>
Integer类的常用方法及区别
查看>>
equals和==的区别
查看>>
ArrayList详细介绍(源码解析)和使用示例
查看>>
ArrayList用法总结
查看>>
Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏
查看>>
javap命令的基本用法
查看>>
命令行中 javac、java、javap 的使用详解
查看>>
Java中的Filter过滤器
查看>>
Java过滤器Filter使用详解
查看>>
JavaWeb之Filter、Listener
查看>>
Listener、Filter和Servlet区别与联系
查看>>
头条面试
查看>>