Вы можете использовать pgrep fo find, если процесс выполняется конкретным пользователем, а затем запустить процесс, если он уже не запущен пользователем:
#!/bin/bash
if pgrep -u "$USER" my-tool &>/dev/null; then
echo 'You already have my-tool running'
else
/path/to/my_tool
fi
Переменная среды, $USER, будет расширен до текущего пользователя, то есть пользователя, выполняющего сценарий. Поскольку нас интересует только то, работает ли my-tool или нет, поэтому достаточно использовать статус выхода непосредственно с конструкцией if.
Использовать этот скрипт как оболочку для запуска my-tool и заставьте пользователей использовать это только или переименуйте его как my-tool и переименуйте исходный my-tool в другое (и измените имя внутри скрипта тоже).
Возможно, проблема защиты от копирования заключается в том, что программное обеспечение dvd, используемое для создания dvd, зашифровало dvd с отсутствующей областью, блокирующей его. Не зависящий от региона DVD-диск все еще может быть зашифрован.
libdvdcss не включен в Ubuntu по умолчанию из-за проблем с лицензированием, простой поиск в google даст вам довольно много информации.
sudo apt-get install libdvdcss2 libdvdread4 libdvdcss-dev
blockquote>Чтобы проверить, если это ваша проблема, запустите игрока из командной строки, например.
$ totem
blockquote>Затем откройте файл или местоположение вашего dvd. Затем вы увидите, что в командной строке появляются следующие строки, если все работает правильно.
libdvdread: Using libdvdcss version 1.2.10 for DVD access libdvdnav: Using dvdnav version 4.1.3 libdvdread: Using libdvdcss version 1.2.10 for DVD access .......... libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x0000014f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000001ce libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000d3ac libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002a221f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002a226c libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x002a4474 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x002a44c1 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x002a67b0 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x002a67fd libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x002b1adc libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x002b1b29 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x002ba5ba libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x002ba607 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_07_0.VOB at 0x00371b8f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_07_1.VOB at 0x00371bdc ..........
Возможно, проблема защиты от копирования заключается в том, что программное обеспечение dvd, используемое для создания dvd, зашифровало dvd с отсутствующей областью, блокирующей его. Не зависящий от региона DVD-диск все еще может быть зашифрован.
libdvdcss не включен в Ubuntu по умолчанию из-за проблем с лицензированием, простой поиск в google даст вам довольно много информации.
sudo apt-get install libdvdcss2 libdvdread4 libdvdcss-dev
blockquote>Чтобы проверить, если это ваша проблема, запустите игрока из командной строки, например.
$ totem
blockquote>Затем откройте файл или местоположение вашего dvd. Затем вы увидите, что в командной строке появляются следующие строки, если все работает правильно.
libdvdread: Using libdvdcss version 1.2.10 for DVD access libdvdnav: Using dvdnav version 4.1.3 libdvdread: Using libdvdcss version 1.2.10 for DVD access .......... libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x0000014f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000001ce libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000d3ac libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002a221f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002a226c libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x002a4474 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x002a44c1 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x002a67b0 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x002a67fd libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x002b1adc libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x002b1b29 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x002ba5ba libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x002ba607 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_07_0.VOB at 0x00371b8f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_07_1.VOB at 0x00371bdc ..........