转载自东华果汁哥
Apache DolphinScheduler 是一个分布式、去中心化的大数据工作流调度系统,支持大数据任务调度。若要设置 DolphinScheduler 开机自启动,通常需要将其配置为系统服务。以下是一般步骤,具体操作可能因操作系统的不同而有所差异:
Linux 系统
- 创建系统服务文件:
- 编辑一个名为
dolphinscheduler.service
的文件,通常放在/etc/systemd/system/
目录下。 - 根据你的 DolphinScheduler 安装路径和配置填写服务文件。
例如:
- 编辑一个名为
[Unit]
Description=DolphinScheduler Service
After=network.target
[Service]
type=exec
ExecStart=/opt/module/dolphinscheduler/bin/start-all.sh
ExecStop=/opt/module/dolphinscheduler/bin/stop-all.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
- 启动服务并设置开机自启:
- 使用
systemctl
命令启动服务并设置开机自启:
- 使用
systemctl daemon-reload
systemctl start dolphinscheduler.service
systemctl enable dolphinscheduler.service
- 验证服务状态:
使用以下命令来检查服务状态:
systemctl status dolphinscheduler.service
Windows 系统
- 创建批处理文件:
- 创建一个批处理文件(例如:
start-dolphinscheduler.bat)
,用于启动 DolphinScheduler。 - 在批处理文件中添加启动 DolphinScheduler 的命令。
- 创建一个批处理文件(例如:
- 将批处理文件添加到启动文件夹:
- 将批处理文件放置在 Windows 的启动文件夹中:
Win + R
打开运行对话框。- 输入
shell:startup
打开启动文件夹。 - 将批处理文件拖放到启动文件夹中。
- 将批处理文件放置在 Windows 的启动文件夹中:
- 重启验证:
- 重启计算机,检查 DolphinScheduler 是否随系统启动。
请注意,以上步骤可能需要根据你的具体环境和 DolphinScheduler 的版本进行调整。在进行这些操作时,确保你有足够的权限,并对系统服务有一定的了解,以避免可能的服务冲突或系统不稳定。
如果 DolphinScheduler 的服务在重启后短暂显示为绿色(表示服务正在运行),然后又变为非绿色状态(通常表示服务不再运行),但相关的进程实际上仍在运行,这可能是由于服务管理器(systemd)
认为服务已经停止,因为它没有检测到持续运行的主进程。
这种情况通常发生在以下几种情况:
- 服务脚本的问题:如果服务脚本
(start-all.sh)
执行完毕后没有保持任何进程在后台运行,systemd
会认为服务已经停止。 - 服务类型配置不当:在
systemd
服务文件中,Type
的配置可能不正确。如果服务被设置为 simple,而实际上它应该是forking
或oneshot
,那么systemd
可能会在脚本执行完毕后立即认为服务已经停止。 - 进程退出码问题:如果服务脚本正确地启动了所有必要的进程,但是脚本本身很快就退出了(例如,因为脚本中的命令很快就执行完毕),
systemd
可能会根据脚本的退出码来判断服务状态。
为了解决这个问题,您可以尝试以下步骤:
- 检查服务脚本:确保
start-all.sh
脚本在启动所有必要的进程后能够保持运行状态。如果脚本执行完毕后没有保持任何进程在后台运行,您可能需要在脚本中添加一些逻辑来保持其运行。 - 调整服务文件:如果您确认脚本正确地启动了所有必要的进程,并且这些进程在后台运行,那么您可能需要调整 systemd 服务文件中的 Type 和其他配置选项。
- 使用
Type=forking
:如果您的服务脚本是一个 fork 进程的脚本,确保在systemd
服务文件中使用 Type=forking。这样,systemd 会等待脚本创建的子进程。 - 使用
Type=notify
(如果支持):如果 DolphinScheduler 支持与服务管理器通信,您可以使用Type=notify
。这样,服务可以通过sd_notify()
函数向systemd
发送状态通知。 - 使用 RemainAfterExit=yes:如果服务脚本启动的进程独立于脚本本身运行,您可以在
systemd
服务文件中使用RemainAfterExit=yes
,这样即使脚本本身已经退出,systemd
也会认为服务仍然在运行。 - 重新加载并重启服务:在修改服务文件后,重新加载
systemd
并重启服务:
systemctl daemon-reload
systemctl restart dolphinscheduler.service
- 检查服务状态:再次检查服务状态,看是否为 active (running)。
- 如果上述步骤都无法解决问题,您可能需要更详细地检查 DolphinScheduler 的日志文件或服务脚本的输出,以确定为什么
systemd
认为服务已经停止。
最终配置,成功。
原文链接:https://blog.csdn.net/u013421629/article/details/138523187
标签:脚本,文件,systemd,dolphinscheduler,服务,DolphinScheduler,Apache,自启动 From: https://www.cnblogs.com/DolphinScheduler/p/18290416