我想编写一个启动脚本文件,启动我的 kafka 环境。
我尝试如下:
#!/bin/bash
/usr/local/zookeeper-3.4.11/bin/zkServer.sh start
/usr/local/kafka_2.12-1.0.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-1.0.0/config/server.properties
问题是,它只启动了 zookeeper,但没有启动 kafka 服务器。
我做错了什么?
答案1
假设该脚本不需要 sudo 权限。
自动启动脚本的一种方法是使用桌面自动启动方法。
在 Ubuntu 中你可以这样做,
- 在主目录中的 .config/autostart 中创建一个文件,扩展名为 .desktop
假设您创建了 zookeeper.desktop,然后打开并包含这种格式。
对于 Zookeeper 条目
[Desktop Entry]
Type=Application
Name=Zookeeper
Exec=/usr/local/zookeeper-3.4.11/bin/zkServer.sh start
然后为以下内容创建一个单独的:
进入卡夫拉
[Desktop Entry]
Type=Application
Name=kafra
Exec=/usr/local/kafka_2.12-1.0.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-1.0.0/config/server.properties
或者只是你编写的脚本
对于你的脚本条目
[Desktop Entry]
Type=Application
Name=/name/of/your/script
Exec=/path/to/your/script
然后你可以这样做(sudo)
将脚本的路径添加到 /etc/rc.local(打开并编辑 rc.local)
/路径/到/你的/脚本&
出口 0
如果它不存在但你的系统有 /etc/rc.d1 到 6,只需简单地把你的脚本添加到该文件夹中,并使用 sudo 权限执行。
答案2
上述方法的变体是修改 .desktop 文件中的 Exec 命令,如下所示:
Exec=gnome-terminal -- /path/to/your/script.sh start
这有两个优点
- 你可以将脚本存储在任何你喜欢的地方,而不必修改 rc.local 或 /etc 中的任何内容
- 您可以在新终端窗口中启动该脚本,这样您就可以看到脚本的提示,例如,如果您的脚本包含 sudo 命令,则输入所需的 sudo 密码。