Linux开机自动启动软件/可执行程序方法

目录

修改那个脚本?

添加什么内容?

(xxx &)

nohup

setsid


修改那个脚本?

首先关注几个脚本

  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分钟启动。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页