Ответ @ jobin в целом правильный, но я добавлю другие ответы, которые могут быть в зависимости от того, что вы хотите сделать.
Если вы хотите изменить сценарий и хотите знать что это безопасно, тогда вы хотите написать новый файл, а не существующий. Новый файл может быть расположен там, где был старый. Напишите новую версию в новый файл, а затем используйте mv, чтобы переместить ее на место поверх старой. Файл, который был заменен, все еще существует, он просто не связан с каталогом. Ваш исполняемый скрипт может продолжать использовать его, и когда этот скрипт закрывает свой дескриптор файла, система знает, что он может безопасно очистить файл (как сразу, так и позже).
Если вы хотите вести себя поведение сценария «на лету», у вас есть более сложная проблема. Я ожидаю, что вам нужно будет создать его в коде сценария. Сценарии Bash могут обрабатывать сигналы (например, можно поймать что-то вроде kill -USR1 [pid]), и тогда скрипт может ответить, перезагрузив некоторый код. Поэтому, возможно, вы можете получить функциональность близко к тому, что хотите, но, не зная, что вам нужно, я не вижу достаточных оснований для этого, и я подозреваю, что если вы хотите сделать что-то такое, вам, вероятно, понадобится более сложный язык программирования, чтобы сделать это.
Если вы хотите взломать поведение запущенного скрипта, который не написан с учетом этого, вам не повезло. Я бы стеснялся назвать любую задачу программирования невозможной, но если бы у вас были ресурсы и навыки для такого рода задач, вы, вероятно, не спрашивали здесь.
Кажется, есть проблемы с 17.04 и зашифрованными swapfiles ... и есть некоторые обходные пути ...
Измените свой /etc/crypttab так:
gksudo gedit /etc/crypttab
Изменить эта строка:
cryptswap1 UUID=xxxx-xxxx-xxxx-xxxx /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
К этому:
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Также убедитесь, что ваш /etc/fstab содержит следующее:
/swapfile none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
Ссылки: [ ! d5]
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
https://bugs.launchpad.net/ubuntu / + источник / ecryptfs-Utils / + ошибка / 1670336
Кажется, есть проблемы с 17.04 и зашифрованными swapfiles ... и есть некоторые обходные пути ...
Измените свой /etc/crypttab так:
gksudo gedit /etc/crypttab
Изменить эта строка:
cryptswap1 UUID=xxxx-xxxx-xxxx-xxxx /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
К этому:
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Также убедитесь, что ваш /etc/fstab содержит следующее:
/swapfile none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
Ссылки: [ ! d5]
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
https://bugs.launchpad.net/ubuntu / + источник / ecryptfs-Utils / + ошибка / 1670336
Кажется, есть проблемы с 17.04 и зашифрованными swapfiles ... и есть некоторые обходные пути ...
Измените свой /etc/crypttab так:
gksudo gedit /etc/crypttab
Изменить эта строка:
cryptswap1 UUID=xxxx-xxxx-xxxx-xxxx /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
К этому:
cryptswap1 /swapfile /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Также убедитесь, что ваш /etc/fstab содержит следующее:
/swapfile none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
Ссылки: [ ! d5]
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
Ubuntu Desktop 17.04 64-разрядная медленная загрузка
https://bugs.launchpad.net/ubuntu / + источник / ecryptfs-Utils / + ошибка / 1670336