gpt4 book ai didi

linux - 在启动时运行 Linux Shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:51 25 4
gpt4 key购买 nike

我有一个 Shell 脚本,我想在启动时运行它。每次我启动设备时,它都会在后台运行脚本。该脚本包含一个 while true 循环,并假设不断运行,至少直到设备关闭为止。这是脚本:

#!/bin/bash

cd /home/.../
while true
do
sh ./update_logs.sh
sleep 1
done

经过大量搜索后,我想出了太多的信息,这些信息在我的脑海中形成了沙拉。建议我进入此文件夹 /etc/init.d 并使用特殊模式(LSB 兼容)将我的脚本放在那里,如下所示:

!#/bin/sh

start () {
echo "application started";
./helloworld # you should use an absolute path here instead of ./
}

stop () {

}

case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage start|stop";
esac

exit $?

通过 chmod +x 使脚本可执行,然后通过键入 ln -s/etc/rc.d/init.d/run_update.sh/etc/init.d/rc5.d/S90run_update 为该文件创建符号链接(symbolic link)

这应该是“困难的方法”,而“简单的方法”是将我的脚本放入文件夹 /etc/rc.local 中,它将在主启动过程后启动我的脚本。

嗯,我没有这种文件夹。我在 etc 文件夹中的内容是 rc.d ,它通向子文件夹: init.d rc0.d rc1.d rc2.d... rc6.d

如果通过编写上面的代码来解决这个问题是很困难的,那么我需要在其中包含的最少内容是多少?因为我看到不同类型的代码,其中包括带有描述和运行级别的 ###我有 Linux Red Hat 4.6.3-2。

最佳答案

在 DEBIAN 脚本中应该在顶部

#!/bin/sh    
### BEGIN INIT INFO
# Provides: SCRIPT_NAME_HERE_NO_PATH
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO

....

然后在 shell 中必须启用 rc 系统链接

update-rc.d SCRIPT_NAME_HERE_NO_PATH defaults
update-rc.d SCRIPT_NAME_HERE_NO_PATH enable

关于linux - 在启动时运行 Linux Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32310418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com