Как я могу завершить работу компьютера, когда закончится определенный процесс?

На самом деле ecryptfs очень точно говорит вам, что делать, когда вы запускаете ecryptfs-setup-private --undo, просто следуйте его инструкциям.

Получите вашу точку доступа к личным каталогам
$ PRIVATE=`cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/Private`

Эта команда заполняет $PRIVATE с указанием пути к вашей частной директории. Либо путь сохраняется в файле ~/.ecryptfs/Private.mnt (где ~ - ваш домашний каталог), либо если файл не существует, он возвращается к ~ / Private path. Затем вы можете запустить команду echo $PRIVATE, чтобы проверить содержимое переменной PRIVATE. Когда вы увидите $ PRIVATE в следующих командах, он будет заменен содержимым переменной ~ / Private в вашем случае.

Получите вашу точку монтирования в личном каталоге

[!d4 ]

Убедитесь, что вы переместили все релевантные данные из вашего каталога $ PRIVATE

Отключите свой зашифрованный частный каталог
$ ecryptfs-umount-private

Это важно.

[d12 ]

Unmount ваш зашифрованный частный каталог

$ chmod 700 $PRIVATE

eCryptFS - это вид файловой системы, которая монтируется в пространстве пользователя (Wikipedia объясняет, что происходит вокруг. Это также причина, почему частная папка не удаляется так легко. Подумайте об этом как о прокси, который прозрачно шифрует и расшифровывает ваши файлы.Эта команда отключает папку, которая эффективно отключает шифрование.

Удаляет $ PRIVATE, ~ / .Private, ~ / .ecryptfs Примечание: ЭТО ОЧЕНЬ ПОСТОЯННО, ОЧЕНЬ ОСТОРОЖНО
$ rm -rf $PRIVATE ~/.Private ~/.ecryptfs

Сделайте вашу личную папку доступной для записи снова

chmod устанавливает права доступа к файлам. В этом случае вы скажем: «сделать файл / каталог сохраненным в $ PRIVATE доступным для чтения, записываемым и исполняемым для меня (700)» - вы не можете иначе удалить каталог, так как у вас нет доступа на запись.

Удалить $ PRIVATE, ~ / .Private, ~ / .ecryptfs

$ sudo apt-get remove ecryptfs-utils libecryptfs0

Это делает именно то, что он говорит. Команда rm означает ReMove, -r означает рекурсивный (для рекурсивного удаления каталогов), а f означает Force («перестаньте меня, просто удалите»). Это приведет к удалению всех этих трех каталогов: $ PRIVATE, ~ / .Private, ~ / .ecryptfs

Если вы хотите, вы можете удалить эти каталоги вручную из Nautilus (просто отметьте «Просмотр> Показать скрытые файлы», чтобы увидеть .Private и .ecryptfs каталоги в вашем домашнем каталоге).

1
задан 10 August 2012 в 13:50

1 ответ

Я не знаю никаких готовых решений для этого, но вы можете сделать проверку cron, если процесс все еще существует каждый час или около того. Вы могли бы поместить что-то подобное в подходящее место chmod, которое он выполнил с помощью root и symlink к нему из /etc/cron.hourly:

#!/bin/bash
PROCESSNUM = `ps x | grep -c "calculationthingy"` 
if [ "$PROCESSNUM" -lt 1 ] 
then
    # Make sure this in inactivated! 
    rm symlink_in_etc_hourly
    shutdown -h now 
fi
0
ответ дан 25 May 2018 в 07:43
  • 1
    спасибо за ответ, но я не могу полностью понять, что делает скрипт .. он получает номер процесса .. нормально .. но что это за строка rm etc? и в какой строке я должен быть уверен, что он неактивен? – lucacerone 11 August 2012 в 12:49
  • 2
    Он подсчитывает количество запущенных процессов, из которых он работает. Если это меньше, чем один, он выключит компьютер. Но когда вы снова загружаетесь, скрипт будет запускаться каждый час (при условии, что вы запустите его, связав его с /etc/cron.hourly). Если у вас нет каких-либо процессов вашего расчетного программного обеспечения, система отключится в вашем лице в следующий раз, когда cron выполнит свою почасовую работу. Чтобы избежать этого, может быть хорошей идеей сделать скрипт инактивировать себя, удалив ссылку на себя в cron.hourly. Немного грубо, по общему признанию, но должен выполнять эту работу. – Hinz 12 August 2012 в 01:42

Другие вопросы по тегам:

Похожие вопросы: