下面你会看到我的实际答案。 (我发布这个问题是为了传递答案。)我花了一段时间才找到正确的答案,所以我在这里发帖可能加快其他可怜人的努力。
如果您查看Apache's site(自2018年1月起),您将看到有关在Ubuntu OS上设置服务的说明(例如,您可以在启动,重启等时启动的守护进程)。你会发现类似的东西:
sudo service zeppelin start
sudo service zeppelin stop
sudo service zeppelin restart
但是如果你按照那个页面进行标准安装,那么在使用CentOS 7之后,在安装之后默认没有注册zeppelin
服务。也就是说,如果你键入类似{{1}的内容该服务将无法找到。
此外,对于我正在使用的CentOS 7,有一个shift towards using systemctl
instead。但是尝试service zeppelin start
也不起作用(找不到systemctl
)。
我可以获得直接可执行调用,例如zeppelin
,以便正常工作。但这并不能提供我想要的解决方案。我希望能够知道,如果机器重新启动或其他任何东西,Zeppelin将可用,因为它在开始时启动。
答案 0 :(得分:5)
我认为"真相必须在那里",但我搜索中的许多路径都没有帮助。
然而,this link from InfoWorld成功了。
总之,我需要了解2个问题:
systemctl
是理想的,service
仍然可以接受。zeppelin.service
文件不是在CentOS中自动创建的(也可能是* nix的所有非Ubuntu风格?), ,即使是标准的.service
文件会很好吗 。所以请继续阅读该链接,但这个故事的重要部分是我需要做以下事情:
/etc/systemd/system/zeppelin.service
文件。 [Unit]
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链接中对此进行了解释,但also here。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
被找到并且有效了。