下面你会看到我的实际答案。 (我发布这个问题是为了传递答案。)我花了一段时间才找到正确的答案,所以我在这里发帖可能会加快为其他可怜的灵魂所做的努力。
如果您查看 Apache 网站(截至 2018 年 1 月),您将看到在 Ubuntu 操作系统上设置服务(例如,您可以在启动、重新启动等时启动的守护程序)的说明。你会发现类似的东西:
sudo service zeppelin start
sudo service zeppelin stop
sudo service zeppelin restart
但是,如果您按照该页面进行标准安装,则在使用 CentOS 7 时,安装后默认情况下不会注册
zeppelin
服务。也就是说,如果您输入类似 service zeppelin start
的内容,该服务将不会被发现。
此外,对于我正在使用的 CentOS 7,有 转向使用
systemctl
来代替。但尝试systemctl
也没有成功(未找到zeppelin
)。
我可以获得直接可执行调用,例如
./bin/zeppelin-daemon.sh start
,可以正常工作。但这并没有提供我想要的解决方案。我希望能够知道,如果机器重新启动或执行其他操作,Zeppelin 将可用,因为它会在启动时启动。
我认为“真相一定就在那里”,但我搜索中的许多路径都没有帮助。
systemctl
是理想的,但
service
仍然可以接受。
zeppelin.service
文件都不会在CentOS中自动创建(也许所有非Ubuntu版本的*nix?),即使标准的
.service
文件可以正常工作。因此,请继续阅读该链接,但这个故事的重要部分是我需要执行以下操作:
/etc/systemd/system/zeppelin.service
文件。
Description=Service to run Zeppelin Daemon
Documentation=
[Service]
User=zeppelin
Group=zeppelin
Type=forking
WorkingDirectory=/home/zeppelin
ExecStart=/home/zeppelin/zeppelin-current/bin/zeppelin-daemon.sh start
ExecStop=/home/zeppelin/zeppelin-current/bin/zeppelin-daemon.sh stop
[Install]
WantedBy=multi-user.target
User=zeppelin
:在本例中,Zeppelin 实例被设置为多用户,从服务器远程登录。如果您希望在重新启动时自动启动 Zeppelin,您可能有相同的用例。
zeppelin
(Zeppelin 软件使用的任何通用用户),这在 InfoWorld 链接中进行了解释,但也在这里。
Group=zeppelin
:同上。
WorkingDirectory
:与上面相同(创建一个用户
zeppelin
,在那里安装Zeppelin,yada,yada ...该链接有更多有关步骤的信息)。
ExecStart
:这是关键线;您需要确保每当您输入
service zeppelin start
时,它都会指向此路径,即您输入
ExecStart
的路径。
ExecStop
:与上面的想法相同。
systemctl daemon-reload
这是关键点。如果这意味着什么的话,它类似于输入 source ~/.bash_profile
。这就是您所说的实际上刷新所有守护进程的行。最后,我建议明确输入
service zeppelin start
以便您确定已找到它。假设它确实做了一些事情(例如,您看到类似 Zeppelin start [ OK ]
或
Redirecting to /bin/systemctl start zeppelin.service
之类的东西...无论哪种情况,您都知道
service
已找到并起作用)。