如何编写启动脚本

如何编写启动脚本

我想编写一个启动脚本文件,启动我的 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

这有两个优点

  1. 你可以将脚本存储在任何你喜欢的地方,而不必修改 rc.local 或 /etc 中的任何内容
  2. 您可以在新终端窗口中启动该脚本,这样您就可以看到脚本的提示,例如,如果您的脚本包含 sudo 命令,则输入所需的 sudo 密码。

相关内容