使用 systemd 在 Screen 中启动 appium

使用 systemd 在 Screen 中启动 appium

我遇到了一个问题systemctl,我无法在服务器启动时appium通过启动工具。systemctl

这是systemctl我编写的服务,我希望它能够启动appium我的机器内的屏幕实例内的工具并与其分离,同时保持其运行(因此有标志-dmS)。

[Unit]
Description=Start appium 


[Service]
Type=oneshot
RemainAfterExit=no
ExecStart="screen -dmS appium appium"

[Install]
WantedBy=default.target

启动服务时,我在服务日志中看到一个错误,表示在我的系统中找不到它appium。但是,如果我尝试通过终端 ( $ screen -dmS appium appium) 执行它,我可以正常运行它。

非常感谢您的帮助。谢谢。

答案1

解决方案: systemd在其自己的“子 shell”中运行进程,一旦调用完成,它就会继续运行,就像一种“screen实例”一样。

因此,解决方案变得比我所想的简单得多:

[Unit]
Description=Start appium 


[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=appium

[Install]
WantedBy=default.target

直接传入appium命令即可奏效。如果安装了多个版本,avm use $(VERSION)也可以使用该命令(例如avm use 1.7.2appium 1.7.2)。

相关内容