linux开机自动执行命令和脚本 自动启动 自启 进程一直运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux开机自动执行命令和脚本 自动启动 自启 进程一直运行相关的知识,希望对你有一定的参考价值。

参考技术A 原文及更新: https://neucrack.com/p/91

直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可

上面这脚本实际上在使用时出现了问题, /home/neucrack/software/ss/start_ss_local.sh 这个命令始终没有被执行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了进程,导致后面一句始终没有执行,可以将他们分别放到后台执行就行了,如何在后台执行可以看文章最后一部分

也可以自己手动在rc*.d中建立软连接

桌面系统搜索 启动 ,打开启动管理器 添加删除即可

一般有以下几种方法:
1)在输入命令的最前面加上 nohup 命令
如 nohup your_command & 这样命令在你退出后仍然会在后台执行
2) setsid 命令
setsid your_command 该命令的结果是使你所运行的命令的父进程为init,所以只有关机该进程才会停止
3) (your_command &)
就是用括号将你的命令括起来,这样做也是使命令的父进程为init
4) disown
当你在命令行下输入 your_command & 后命令就在后台执行了,然后执行jobs命令,该命令会列出当前正在后台执行的命令。例如输入命令“top&”
然后执行"jobs"
输出结果是
[1] + Suspended (tty output) top
注意行开头方括号内的数字,该数字叫做jobspec,是给当前后台运行的job的编号。这是你只要在命令行下输入"disown -h 1" 后台运行的top命令就不会受到hangup信号的影响了。
5)使用 screen 命令
在命令行下输入screen命令就开启了一个screen进程,它就好像是一个全新的命令运行环境,在该环境中你可以像在正常的terminal下那样执行
命令,但是这个screen是不受其父进程的hangup信号的影响的,既然screen不受其父进程影响,当你意外掉线或者退出系统时,在screen
中仍在执行的命令仍然会继续执行。关于screen命令的使用方法你可以再去查阅相关资料。

linux脚本开机自启

rc.local脚本是一个ubuntu开机后会自动执行的脚本,利用这一点,实现Ubuntu的开机启动项。
目录:/etc/rc.local

sudo su
vim /etc/rc.local

/rc.localexit 0前写入要执行的脚本,需要注意的是,该脚本必须能正常退出终端。

....

sh /home/XXX/Desktop/abc.sh
exit 0

新建 abc.sh 文件

#!/bin/sh

mkdir /home/heisk/Desktop/ccc

这样重启后就会发现在桌面出现了一个没有写权限的ccc文件夹

cd /home/heisk/Desktop/
ls -la
drwxr-xr-x 2 root  root  4.0K 12月 11 10:36 ccc

在/etc/rc.local中加入程序启动语句 ----- 开机自启动

在~/.bash_profile中加入程序启动语句 ---- 登陆自启动

在~/.bashrc 中加入程序启动语句 ---- 打开终端时自启动

参考链接

https://blog.csdn.net/qq_19582693/article/details/100597535


以上是关于linux开机自动执行命令和脚本 自动启动 自启 进程一直运行的主要内容,如果未能解决你的问题,请参考以下文章

linux开机自启动命令

Linux Debian系统下,我想开机后,开机自动运行我开发的一个test.jar文件,怎么做到开机自启?

[开机启动]Linux开机自启和运行级别

Linux的开机自启应用的方法

linux脚本开机自启

linux脚本开机自启