Создайте отдельный процесс в Linux (Shell), чтобы избежать непревзойденного сигналаLinux

Ответить
Anonymous
 Создайте отдельный процесс в Linux (Shell), чтобы избежать непревзойденного сигнала

Сообщение Anonymous »

Контекст: я делаю свой собственный менеджер по сохранению облаков для моих не Steam Games, я в процессе реализации обертки, которая запускает игры, но также загружает файл из облака перед открытием и когда вы даете ей сигнал Shut Down Backsup Save Files. < /p>
В настоящее время в Windows следующий код работает с использованием WSL: < /p>
preaunk_wrapper_windows.shr.shrapper_windows.shr.shr.shrapper_windows.shr.shrapper_windows. class = "Lang-Bash PrettyPrint-Override">#!/bin/bash

path="~/game_save_backups"

handle_HUP()
{
/mnt/c/Windows/system32/cmd.exe backup.bat
exit
}

trap 'handle_HUP' HUP

/mnt/c/Windows/system32/cmd.exe auto_override_load_saves.bat

$1 "$2"

handle_HUP
< /code>
Это используется следующим образом:
lanch_x_game.bat
cd ../game_save_backups/
wsl -e bash -lic "launch_wrapper_windows.sh emulator_path 'game_path'"
< /code>
Теперь та же самая логика не работает на Steam OS (работая Archlinux).
Отправленный сигнал является int, а затем ??? Нет подсказки, я использовал сценарий Sigcatcher, и он в затруднительном положении ничего не возвращал, просто пустой файл < /p>
Так что происходит, нажмите «Стоп в паре» -> int signal для скрипта -> Запуск Backup.sh Поскольку он ловит Int, но он останавливается другим сигналом. Это этот сигнал, который я не могу поймать.nohup backup.sh &
(backup.sh &)
backup.sh &
disown
setsid backup.sh
< /code>
Все это безрезультатно. : < /p>
trap 'handle_HUP' INT
trap 'handle_HUP' HUP
trap 'handle_HUP' TERM
trap 'handle_HUP' QUIT
trap 'handle_HUP' EXIT
trap 'handle_HUP' ABRT
trap 'handle_HUP' STOP
< /code>
Возможно, эмуляторы бросают свои собственные SIGS родителю? В любом случае, лучший способ не справиться с этим - это то, чтобы в комплекте отсоединить резервное копирование .sh на первом сигнале int из Steam, когда вы нажимаете «Выйти из игры» < /p>
Я использовал следующий скрипт, чтобы сгенерировать мой Sigcatcher: < /p>
#!/bin/sh

# generate a shell function for each and every available signal.

/bin/kill -l | tr ' ' '\n' |
while read signal; do
cat >sigcatcher.sh
< /code>
и я запускаю его так
sigcatcher.sh> sigcatcher.out < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ble-signal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»