Linux在rc.local中加入需要开机自启动的程序的路径,再在路径名后加入&,既表示程序是以后台的方式启动!
发布网友
发布时间:2022-04-28 21:34
我来回答
共1个回答
热心网友
时间:2023-09-16 18:54
在 rc.local 中的命令其实不需要在最后加 & 符号的.
所谓后台运行, 对于在终端(Terminal)下运行的命令才有意义. 一般来说我们在终端运行一个程序, 该程序就会占用当前终端的标准输入和标准输出, 你就无法在终端运行其他命令了, 这叫前台运行. 如果在终端执行程序的时候在末尾加入一个 & 符号, 程序就会在后台运行, 你仍然可以在当前的终端继续输入其他命令和操作.
而 rc.local 中的命令都是由 init 这个程序来执行的, 他们都会自动在后台运行. 所以这两种写法是不会有差别的.
我再解释一些关于后台运行常见的疑惑:
1. 为啥需要后台运行?
这一般会有各种原因, 下面列出常见的几种:
1) 程序只是一个"后台"服务, 只需要默默运行, 产生一些效果, 但并不需要用户操作.
2) 图形界面程序, 不使用终端进行操作
3) 需要暂时切换到其他程序进行操作
2. 如何让前台程序切换到后台运行.
打开一个图形程序, 结果忘输 & 了, 可是又想继续敲一些命令, 该咋办, 当然, 我们可以关掉从开一遍, 或者打开一个新终端. 如果想把它切换到后台, 可以先按 Ctrl + Z 暂停它, 然后键入 bg (background) 把它切换到后台运行.
3. 如何让后台程序切换到前台运行?
有时候, 暂停了一个终端程序, 又需要调到前台了, 这时, 用 fg 命令(foreground)就可以了.
4. 后台多于一个进程怎么办? 怎样停止后台程序?
使用 jobs 命令可以查看当前终端后台运行的程序. 每个后台程序会有一个编号. 例如这样:
[1] Running emacs &
[3]+ Stopped vim
[4]- Running firefox &
然后 fg 4 可以把 4号程序调到前台, 也就是 firefox. 3号程序目前显示是 stopped 所以我们可以用
fg 3 把 vim 调到前台来运行, 也可以用 bg 3 让它在后台继续运行(本来是暂停的)(这只是个例子, 其实对于 vim 这种前台程序,你调到后台自动运行它也会自己自动暂停的, 但是其他程序就不一定了). 也可以用 kill %4 把 4号程序结束掉(注意: kill 与 fg 和 bg 不同, 要加个百分号).
5. 后台程序在退出 Terminal 时会自动退出吗.
会的, 即使被叫做后台程序. 如果想让它不自动退出可以用 nohup, 例如.
nohup ibus-daemon &
注意, 这里联合使用了 nohup 和 &, 因为 nohup 不会自动将程序在后台运行.