我在 Debian 8 盒子上使用 AppImage 格式打包了一个 Electron 应用程序。我想使用 supervisord (v3.0) 监控和重新启动这个应用程序,但我就是不明白为什么它不起作用。
这就是我手动成功启动我的应用程序的方式:
/home/player/player.AppImage
毫无价值的是这个应用程序没有被守护。如果您关闭当前 shell,您也会关闭应用程序,因为它应该由主管跟踪应用程序。
现在,这就是我的主管 .conf 文件的样子:
[program:player]
command=/home/player/player.AppImage
user=player
autostart=true
autorestart=true
startretries=3
这是主管在“主管启动播放器”上返回的内容:
player: ERROR (abnormal termination)
日志中有什么:
2018-01-09 22:44:13,510 INFO exited: player (exit status 0; not expected)
2018-01-09 22:44:22,526 INFO spawned: 'player' with pid 18362
2018-01-09 22:44:22,925 INFO exited: player (exit status 0; not expected)
2018-01-09 22:44:32,967 INFO spawned: 'player' with pid 18450
2018-01-09 22:44:33,713 INFO exited: player (exit status 0; not expected)
2018-01-09 22:44:34,715 INFO gave up: player entered FATAL state, too many start retries too quickly
我还尝试使用中间 shell 脚本来启动主应用程序,但它也失败了,即使使用“exec”来启动应用程序也是如此。
仅供参考,当我手动启动应用程序时,这是我在“ps ax”上的内容:
19121 pts/1 Sl+ 0:00 /tmp/.mount_player5aT7Ib/app/player
19125 ? Ssl 0:01 ./player-1.0.0-i386.AppImage
19141 pts/1 S+ 0:00 /tmp/.mount_player5aT7Ib/app/player --type=zygote --no-sandbox
19162 pts/1 Sl+ 0:00 /tmp/.mount_player5aT7Ib/app/player --type=gpu-process --no-sandbox --supports-dual-gpus=false --gpu-driver-bug-workarounds=7,23,
19168 pts/1 Sl+ 0:01 /tmp/.mount_player5aT7Ib/app/player --type=renderer --no-sandbox --primordial-pipe-token=EE7AFB262A1393E7D97C54C3C42F901B --lang=1
我在 Supervisor 文档中找不到与 AppImage 格式相关的任何内容,有什么特别之处吗?您是否看到任何解决方法可以使其正常工作?
谢谢你的帮助