В старину, где RAM была ограничена, сам изменяющий код использовался для сохранения памяти. В наше время, например, утилиты сжатия приложения как UPX используются для распаковывания/изменения собственного кода после загрузки сжатого изображения приложения.
Разница здесь действительно в промежуточном процессе. Когда вы закрываете окно терминала, сигнал HUP (связанный с «nohup», как упоминалось в an0nymo0usc0ward) отправляется процессам, работающим в нем. Действие по умолчанию при получении HUP - умереть - из справочной страницы signal (3),
No Name Default Action Description
1 SIGHUP terminate process terminal line hangup
В вашем первом примере процесс сна напрямую получает этот сигнал HUP и умирает, потому что он не настроен делать что-либо еще. (Некоторые процессы перехватывают HUP и используют его для выполнения некоторых действий, например, перечитывания некоторых файлов конфигурации)
Во втором примере процесс оболочки, выполняющий ваш сценарий оболочки, уже умер, поэтому процесс сна никогда не получает сигнал. В UNIX каждый процесс должен иметь родительский процесс из-за того, как работает семейство вызовов wait (2) и процессы в целом. Поэтому, когда родительский процесс умирает, ядро передает его init (pid 1, как вы заметили) в качестве приемного ребенка. Сиротский процесс (в Википедии) имеет дополнительную информацию о нем, также см. Зомби-процесс для некоторых дополнительных технических деталей.
Пока транзакция полностью автономна в блоке using (), вы готовы к работе. Однако проблемы могут возникнуть и возникают, если кому-то передан существующий объект транзакции от вызывающего абонента. Но это другой сценарий...
-121--1500719-Предположим, что раскрывающийся список:
<asp:DropDownList runat="server" id="ddl">
<asp:ListItem Value="0" text="Select a Value">
....
</asp:DropDownList>
У вас есть два способа:
<asp:RequiredFieldValidator ID="re1" runat="Server" InitialValue="0"....
второй способ - использовать средство проверки сравнения:
<asp:CompareValidator ID="re1" runat="Server" ValueToComare="0" ConroltoCompare="ddl" Operator="Equel"....
-121--943595- ^ z
bg
откреститься от% < jobid >
Не hup script.sh &
В зависимости от вашей потребности,
существует два варианта [будет больше; -)]
ssh remothost 'nohup/path/to/script.sh > nohup.out 2 > & 1 &'
ИЛИ
используйте 'screen'