我在Ubuntu20.04上有一个opensplice,它是通过systemd启动的。
如果发行者通过systemd启动,那么数据就不会被公开,而且也不会在opensplice日志文件中报告或显示错误。
如果我从命令行运行它,或者如果我停止并重新启动服务,那么发布者就可以工作。
对于发布服务器和订阅服务器,QoS是相同的。
发布服务器和订阅服务器应用程序运行在不同的计算机上。
网络上没有其他参与者。所有机器都会重新启动,重新启动的顺序不会改变所观察到的行为。
系统服务是:
[Unit]
Description=Publisher Process
Documentation=
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
WorkingDirectory=/opt/publisher/bin
ExecStart=/opt/publisher/bin/publisher.sh
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.targetpublisher.sh是:
#!/bin/bash
cd /opt/publisher/bin
source bashrc_local
# We just keep running the application (in case of a crash)
while true; do
./publisher
sleep 15
done我有一份工作让我觉得有点不自在。
#!/bin/bash
cd /opt/publisher/bin
source bashrc_local
timeout 30 ./remote_processor
killall remote_processor
# We just keep running the application (in case of a crash)
while true; do
./publisher
sleep 15
done有什么办法可以把我的工作移开吗?
9月16日编辑
问题似乎是系统启动顺序和依赖关系,因为我遇到了同一个问题,一个程序通过不使用DDS的UDP发布数据。
更改依赖项,以便在用户登录之前启动服务,没有帮助。
发布于 2022-08-09 04:28:24
检查您的环境变量,因为systemd将不使用与bash控制台相同的环境运行。
特别是,您是否将OSPL_URI变量设置为指向配置?
如果使用商业版本,则还需要设置OSPL_HOME和ADLINK_LICENSE。
路径变量是否包括您的OSPL共享库?
这些都是通过在bash会话中运行$OSPL_HOME\release.com脚本来设置的。
我倾向于手动将所需的内容添加到服务文件中,例如,file:///opt/ospl.xml Environment=OSPL_URI=
https://stackoverflow.com/questions/72571099
复制相似问题