#!/bin/sh ## spider watcher, work with start_cloud_in_container.sh ## 如果遇到chrome因为开启了sandbox而启动报错,提示需要修改chrome/xx.xx.xx.xx版本所有者为root且权限改为4755 ## 则手动修改/app/ulixee/node_modules/@ulixee/hero-core/.env.defaults ## 把ULX_NO_CHROME_SANDBOX=# don't force the chrome sandbox设置为ULX_NO_CHROME_SANDBOX=yes,关闭sandbox script_root=$(dirname $0) cd $script_root watcher() { spider_num=`ps -ef | grep 'node spider.mjs' | grep -v grep | wc -l` if [ $spider_num -lt 1 ]; then echo "Spider is down, try to restart it." echo "Checking ulixee cloud" cloud_num=`docker ps | grep 'ulixee_cloud' | grep -v grep | wc -l` if [ $cloud_num -ge 1 ]; then echo "ulixee cloud is alive, start spider" cd $script_root npm start -- config_custom.json else echo "ulixee cloud is down, try to restart it" cloud_installed=`docker ps -a | grep 'ulixee_cloud' | grep -v grep | wc -l` if [ $cloud_installed -e 1 ]; then docker start ulixee_cloud else docker stop ulixee_cloud docker rm ulixee_cloud cd $script_root ./start_cloud_in_container.sh fi sleep 10 fi else echo "Spider is alive" sleep 10 fi } while true; do watcher done