LINUX如何设置开机自启动脚本_Linux配置系统开机自动运行脚本的方法

说白了,Linux开机自启动就三种主流方法,Systemd最方便但得看发行版,老系统还得用init.d。

展开讲,先说最重要的Systemd,去年我们跑那个CentOS 8 项目,直接用.service文件搞定了PostgreSQL挂载,加个After=network.target就稳了,journalctl看日志比tail方便多了。
另外一点是rc.local虽然老但真管用,不过得手动把日志重定向到/var/log/rc.local.log,不然出问题找不着地方。
还有个细节挺关键的,不管是哪种方法,脚本路径都得用绝对路径,别用which命令那种,系统环境变了容易错。

我一开始也以为SysVinit过时了,后来发现CentOS 6 客户机还得靠chkconfig维护init.d脚本,写个start函数跑半天,说实话挺坑的。
不过现在新系统基本都弃用这个了。

提醒个容易踩的坑,用Systemd的时候别忘了User=root,不然有些需要高权限的操作会失败,这个点很多人没注意。

建议优先用.service,功能全还省事,兼容性强。
兼容旧系统就考虑rc.local,但日志和依赖得自己兜底。

详解如何在 Linux 启动时自动执行命令或脚

哈,这个问题涉及到Linux系统管理的基础知识,我来给你详细说说。

上周有个客人问我怎么在Linux启动时自动执行脚本,我给他介绍了两种传统方法。
第一种是使用cron任务,第二种是修改/etc/rc.d/rc.local文件。

先说第一种,使用cron。
这个方法比较灵活,可以通过cron的调度格式来精确控制脚本执行的时间。
比如,你想每天早上8 点执行脚本,可以这样设置:
crontab -e 0 8 /path/to/your/script.sh
这里的@reboot指令可以直接代替上述格式,不过要注意,cron守护进程必须是在运行的。
另外,如果你的脚本中有用到特定的环境变量,你需要在crontab文件中设置它们。

第二种方法是通过修改/etc/rc.d/rc.local文件。
这个文件在系统启动时会自动执行。
但是,systemd-based发行版中可能需要特殊处理,比如给它执行权限:
bash chmod +x /etc/rc.d/rc.local
然后你可以在文件底部添加你的脚本路径。

比如,我的两个示例脚本1 .sh和2 .sh:
bash !/bin/bash DATE=$(date +%F%H:%M:%S) DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1 .txt
bash !/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add it to your bookmarks." > $DIR/file2 .txt
记得要给这两个脚本也设置执行权限:
bash chmod +x /home/gacanepa/1 .sh chmod +x /home/gacanepa/2 .sh
至于在登录或注销时执行脚本,你可以修改~/.bash_profile或~/.bash_login文件,或者如果你是使用ZSH,则是~/.zshrc。
不过,要注意,对于一些系统,比如Debian或Ubuntu,你可能需要手动创建这些文件。

总之,两种方法各有优缺点,选择哪种取决于你的具体需求。
反正你看着办,如果还有其他问题,随时问我。
我还在想这个问题,希望能帮到你。

如何在linux里面设置程序自动启动?

嘿,哥们儿,我最近捣鼓Linux系统,这玩意儿确实有点意思,但有时候也挺头疼的。
记得那年我弄了个脚本,想让它开机自动运行,就想着编辑那个rc.local文件。
我写了个shell脚本叫shell.sh,放在了桌面下,还挺简单的。

我就在终端里输入了个命令gedit /etc/init.d/rc.local,然后就在那个文件里把脚本路径加上了。
我写的是:/home/mars7 04 /Desktop/sh.sh,这样就OK了。

其实啊,Linux系统启动那些乱七八糟的服务都是在/etc/init.d里,那些都是脚本文件。
就像Windows里的autorun.dat一样。
我之前还不太懂,后来查了查,发现这etc文件夹里还有个rc1 .d,rc2 .d,一直到rc6 .d的文件夹,这东西叫runlevel,也就是运行级别。
我一般用的就是第五级,也就是rc5 .d,这下面就是第五级启动的服务。

但是要注意,这rc(1 -6 ).d里的文件都是指向/etc/init.d里对应文件的链接,就像是Windows里的快捷方式一样。
我想要启动个什么服务,比如scim,得先知道它在哪,我用个locate命令找了一下,发现它在/usr/bin/scim。

然后我就可以写个脚本了,放在/etc/init.d里,再在rc5 .d里做个链接。
这脚本其实简单,就两行代码:
!/bin/bash /usr/bin/scim
第一行是告诉系统用哪个终端来运行这个脚本,第二行就是要执行的命令。

还得注意的是,rc5 .d里的链接名字要么以S开头,要么以K开头。
S开头的表示系统启动时要随机启动这个服务,K开头的则是不启动。
所以,如果你想让哪个服务随机启动,就把它的名字从K改成S就可以了。
反过来,如果把S改成K,那服务就不随机启动了。

我那链接就起名叫SXXX,这样系统才能识别它是个随机启动的服务。

在RH系统里,rc.local是默认启动的最后一步,所以你如果想让它随机启动,还有一种方法就是在rc.local的结尾加上要启动的命令,比如我的是/usr/bin/scim。

说得有点多了,哈哈。
总之,就是多实践,多摸索,慢慢就懂了。
有啥问题咱们再聊!

Linux下Python脚本自启动和定时启动的详细步骤

上周,我那个朋友在Linux服务器上部署了一个Python脚本,他想让这个脚本开机自动运行,还想要定时执行。
我教他这样操作:
一、开机自动运行 1 . 用root权限编辑文件:sudo vi /etc/rc.local 2 . 如果没有rc.local,按照那篇文章的指引操作。
3 . 在exit 0上面添加启动脚本的命令: /usr/bin/python3 /home/selfcs/auto.py > /home/selfcs/auto.log 4 . 最后重启Linux,脚本就能自动运行并打印日志了。

二、定时启动 1 . 用root权限编辑文件:sudo vi /etc/crontab 2 . 在文件末尾添加以下命令: 2 root /usr/bin/python3 /home/selfcs/auto.py > /home/selfcs/auto.log 这意味着每隔两分钟执行一次脚本并打印日志。

三、crontab编写解释 基本格式:分 时 日 月 周 user command 1 . 每分钟执行一次: user command 2 . 每隔2 小时执行一次:/2 user command 3 . 每天8 :3 0分执行一次:3 0 8 user command 4 . 每小时的3 0和5 0分各执行一次:3 0,5 0 user command 5 . 每个月的3 号到6 号的8 :3 0执行一次:3 0 8 3 -6 user command 6 . 每个星期一的8 :3 0执行一次:3 0 8 1 user command
总结:以上是Linux下Python脚本自启动和定时启动的详细步骤。
如有疑问,可以留言或联系站长。
感谢大家的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢! 我刚想到另一件事,记得在操作之前备份相关文件,以防万一。