GNU画面がすでに存在する場合は再接続し、それ以外の場合は作成します。

GNU画面がすでに存在する場合は再接続し、それ以外の場合は作成します。

私はそうしようとしています。名前付きGNU画面がworkerすでに存在する場合は再接続し、そうでない場合は起動しますpython example.py

私は試した:

if [ls /var/run/screen/S-root/ |grep -Fxq worker] then screen -r worker else cd /home/www/example/; screen -S worker python example.py fi

しかし、うまくいかないようです。

文法に問題はありませんか?

ベストアンサー1

screen -ls使用またはさらに理解する

screen -S worker -x || { cd /home/www/example; screen -S worker python example.py; }

しかし、コードのエラーは

  1. 不要[(周辺にスペースが必要)

    if [ls /var/run/screen/S-root/ |grep -Fxq worker]
    

    でなければならない

    if ls /var/run/screen/S-root/ | grep -Fxq worker
    
  2. 以前に行方不明;/改行文字then

    |grep -Fxq worker] then
    

    でなければならない

    | grep -Fxq worker; then
    
  3. 以前に行方不明;/改行文字else

     then screen -r worker else
    

    でなければならない

     then screen -r worker; else
    
  4. 以前に行方不明;/改行文字fi

    python example.py fi
    

    でなければならない

    python example.py; fi
    

おすすめ記事