在 init.d 中设置脚本后程序无法运行

在 init.d 中设置脚本后程序无法运行

我有两个程序需要在启动时运行。我使用 init.d 脚本是因为我系统中的虚拟机没有 systemctl。根据我的配置,program_A 可以运行,但 program_B 不能运行。它似乎已启动,但无法正常工作,因为它没有按预期登录系统日志。

我的设置如下:

/usr/bin/Program_A
/usr/bin/Program_B
...
/etc/init.d/Program_A.sh
/etc/init.d/Program_B.sh

其中 Program_A.sh 和 Program_B.sh 类似

#!/bin/bash
sudo /usr/bin/Program_A &
disown

创建初始化文件并复制我运行的可执行文件后

update-rc.d Program_A.sh defaults
update-rc.d Program_B.sh defaults

注1:我必须在我的脚本中添加“&”和“disown”,因为如果我不这样做,program_A就会卡住并且不会让program_B启动

笔记2:如果执行以下命令,这两个程序都可以正常工作:

sudo /usr/bin/Program_X

注3 我已经删除了“否认”并只启动了program_B。它仍然不起作用。在 init.d 中运行脚本与启动时启动脚本的行为不同

我可以检查该程序是否由以下方式启动:

ps -aux | grep Program_B                      
root      1905  0.0  0.2   2308   868 ?        S    09:13   0:00 
/usr/bin/Program_B

但是,它不会更新系统日志中的文件。因此,它没有运行或程序以其他名称启动,从而使系统日志过滤器不起作用。

相关内容