поэтому я пытаюсь использовать эту команду:
export DISPLAY=:1; /usr/bin/xterm -hold -e /path/to/shscript
Где shscript
:
#!/bin/bash
echo "Restarting ... $(date)" >> /var/log/mw2.txt
if screen -ls | grep -q 'test'; then
screen -X -S test quit
sleep 1000
screen -d -m -S test wine iw4m.exe -dedicated -console +dw_licensefile license.dat +set net_port "28960" +set party_maxplayers 18 +exec server.cfg +map_rotate +set fs_game "mods/tsd"
else
screen -d -m -S test wine iw4m.exe -dedicated -console +dw_licensefile license.dat +set net_port "28960" +set party_maxplayers 18 +exec server.cfg +map_rotate +set fs_game "mods/tsd"
fi
Итак, я хочу запустить новое окно xterm и запустить сценарий оболочки. Но какой бы сценарий оболочки я ни пытался использовать, он его не запускает. Он просто становится пустым. Все остальные команды работают, но когда я помещаю в нее сценарий оболочки, он просто становится пустым и ничего не делает. Я не могу найти решение для этого, пожалуйста, помогите, спасибо.
Я получаю это с set -x
:
++ date
+ echo 'Restarting ... (date)'
+ grep -q test
+ screen -ls
+ screen -d -m -S test -wine iw4m etc...
#!
)? Что содержит внешний вид сценария? - person Etan Reisner   schedule 22.11.2015set -x
в начало скрипта и посмотрите, не выводятся ли какие-либо дополнительные сведения о том, что выполняется. Можно ли таким образом заставить любой скрипт работать правильно? Даже простой, который работает толькоecho Hello
? - person Etan Reisner   schedule 22.11.2015set -x
В файле /var/log/mw2.txt не указано Перезапуск... $(дата). о_о - person Wlnt   schedule 22.11.2015set -x
в сценарии? Вы должны увидеть каждую строку вывода сценария (с префиксом+
). - person Etan Reisner   schedule 22.11.2015screen
,grep
иif
? Вы видите, как он выполняет вашиscreen
команды? Вы видите, что он работаетsleep
? Что именно вы видите? (Вы можете просто отредактировать весь вывод в вопросе.) - person Etan Reisner   schedule 22.11.2015screen
в блокеelse
? Но у вас не заканчивается сеансscreen
? Похоже, у процессаwine
возникла проблема, и он не работает (либо сам процесс, либо процессiw4m
). Вам нужно посмотреть, сможете ли вы получить один (или оба) из них, чтобы регистрировать дополнительную информацию о том, что происходит. - person Etan Reisner   schedule 22.11.2015:1
правильным отображением? Он все еще установлен при запуске скрипта? Как вы выполняете командуxterm
, которая не работает? Через крон? - person Etan Reisner   schedule 22.11.2015screen
, вы видите это в выводеset -x
. Это означает, чтоwine
илиiw4m
каким-то образом дают сбой. Как это запускается, когда оно терпит неудачу? Через лаунчер? Через крон? Через что-то другое? Проверьте среду, когда она работает, а когда нет, и посмотрите, отличаются ли они. Перенаправьте стандартный вывод и стандартную ошибку изscreen
(иwine
) в файл и посмотрите, видите ли вы там что-нибудь. - person Etan Reisner   schedule 23.11.2015