Linux下开机启动脚本程序

Linux下开机启动脚本程序,第1张

本周我们学习了如何使用Linux编辑脚本程序,当我们编写好脚本的时候,我们需要返回终端界面,使用各种编译器运行程序,但是有时候我们需要在系统开机的时候就自动运行这些程序,下面我们就来看一下在Linux下将脚本设定成开机自动运行的方法。

Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下。假设我们需要运行的脚本文件是test1目录下的test.py。

在系统中找到/etc/rc.local文件,系统会根据该文件来启动所指定的脚本或命令

我们需要用超级用户登录,并在上述文件最后添加需要运行的脚本文件。

随后cd /home/test1返回test1目录以对其进行更改。 

su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su

下面我们就可以实现这个脚本的开机自动运行。

1、利用crontab 制定定时任务

2、编写定时关闭和打开程序的脚本或命令

3、crontab的用法

第1列分钟1~59

第2列小时1~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~6(0表示星期天)

第6列要运行的命令

下面是crontab的格式:

分 时 日 月 星期 要运行的命令或脚本

30 21 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示每晚的21:30重启apache

原文及更新: 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命令的使用方法你可以再去查阅相关资料。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12009410.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存