Как упоминает Хауке Лейджинг, [114013] "unix local" сокеты [114014] имеют файловый узел, как и именованные трубы (см. [114015] man fifo[114016]). Однако, сокеты интернет-протокола (используемые для сетевой связи) этого не делают. Вместо этого, они ассоциируются в пространстве пользователя с номером порта. Обратите внимание, что сокет сервера на одном порту соединяет нескольких клиентов, каждый из которых имеет свой отдельный сокет (один локальный файл сокета unix также может быть использован таким образом с сервером, т.е. может быть несколько сокетов, связанных с одним и тем же адресом файла), и в коде они фактически идентифицируются индивидуально с помощью отдельных цифровых файловых дескрипторов [114017].
Таким образом, в этом смысле все сокеты [114019] во многом похожи на файлы и имеют ссылку в [114021]/proc/[pid]/fd/[114022]. Вы даже можете вызвать [114023]readlink()[114024] на этом inode и получить специальное имя файла, которое используется в инструментах командной строки, таких как [114025]lsof[114026], я полагаю; также вы можете получить информацию о дескрипторе сокета через [114027]fstat()[114028].[113544].
readme в этом каталоге утверждает, что скрипты в этом каталоге вызываются только один раз на powerOff (а не на перезагрузке).
С простым тестовым программой
#!/bin/bash
LOG=/root/backup.log
date >> $LOG
echo $* >> $LOG
Я заметил, что однажды программа фактически называлась дважды, один раз без параметра и один раз с параметром «Стоп». Однако я не смог воспроизвести его.
Я бы предложил воспользоваться фактическими параметрами вызова к программе, а также в тесте скрипта для $ 1
Быть Stop
.
Также более важно ставить эту программу в виде резервного копирования
в /etc/init.d
и составить ссылку из /etc/rc0.d/k01backup
Для этого скрипта, но это не должно влиять на его операцию никак. Любые инструменты, управляющие такими записями, работают с созданием / удалением этих ссылок.
На основании попытки этого основного сценария OP обнаружил, что появился резервный файл от редактирования файла: /etc/rc0.d/k01backup ~
, которые также были выполнены. Положив файл файл резервного копирования
в /etc/init.d/
с самого начала, и изготовление ссылки не позволило бы это произойти (независимо от того, будет ли / etc / init.d / backup ~
файл или нет).