Я случайно удалил все символические ссылки в /etc/rc1.d/. Как я могу их восстановить?
Самый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure, ни apt-get --reinstall install не восстанавливают символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default-(Start|Stop).
Скрипт ниже (тестируется) выглядит в сценарии после установки пакетов для команды update-rc.d, которая добавляет запуск скрипт. Предыдущие ссылки должны были быть удалены для работы, следовательно, строка update-rc.d -f [script-name] remove. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README, но это не критично.
#!/bin/bash
cd /etc/init.d && for file in *; do
if [ -x "$file" ]; then
pkg=$(dpkg-query -S "/etc/init.d/$file" | cut -d: -f1)
if [ -z "$pkg" ]; then
echo "**WARNING** No related package found, skipping file: $file"
else
postinst="/var/lib/dpkg/info/$pkg.postinst"
if [ -r "$postinst" ]; then
update=$(grep -Po "(?<!#)\s*update-rc\.d\s+$file\s+((start|stop|defaults)[\s\dS\.]+)+" "$postinst" | sed -e 's/^\s*//' -e 's/\s\+/ /g')
if [ -n "$update" ]; then
sudo update-rc.d -f "$file" remove
sudo $update
else
if [ -e "/etc/init/$file.conf" ]; then
echo "$file has been moved to Upstart"
else
echo "No update-rc.d line found for $file"
fi
fi
else
echo "No post-installation script found for $pkg"
fi
fi
else
echo "Not an executable, ignoring file: $file"
fi
done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query -S /etc/init.d/[script-name] - возвращает имя пакета, ответственное за файл less /var/lib/dpkg/info/[package-name].postinst - поиск «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска] Ресурсы:
dpkg-query -S /etc/init.d/[script-name] - получает имя пакета, ответственного за файлСамый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure
, ни apt-get -reinstall install
восстанавливает символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default- (Start | Stop)
.
Скрипт ниже (протестирован) выглядит в сценарии после установки пакетов для команды update-rc.d
, которая добавляет сценарий запуска. Предыдущие ссылки должны были быть удалены, чтобы работать, поэтому update-rc.d -f [имя-скрипта] удаляет строку
. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README
, но это не критично.
#! / Bin / bash cd /etc/init.d & amp; & amp; & amp; для файла в *; do, если [-x "$ file"]; затем pkg = $ (dpkg-query -S "/etc/init.d/$file" | cut -d: -f1), если [-z "$ pkg"]; затем echo "** ПРЕДУПРЕЖДЕНИЕ ** Не найден соответствующий пакет, пропуская файл: $ file" else postinst = "/ var / lib / dpkg / info / $ pkg.postinst", если [-r "$ postinst"]; затем update = $ (grep -Po "(? & lt;! #) \ s * update-rc \ .d \ s + $ file \ s + ((start | stop | defaults) [\ s \ dS \.] +) + «$ postinst» | sed -e 's / ^ \ s * //' -e 's / \ s \ + / / g'), если [-n "$ update"]; затем sudo update-rc.d -f "$ file" удалить sudo $ update else, если [-e "/etc/init/$file.conf"]; то echo "$ file был перемещен в Upstart" else echo "Нет строки update-rc.d для $ file" fi fi else echo "Нет сценария после установки, найденного для $ pkg" fi fi else echo "Не является исполняемым, игнорирование файла: $ file "fi done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query - S /etc/init.d/[script-name]
- получает имя пакета, ответственного за файл less / var / lib / dpkg / info / [имя пакета ] .postinst
- найдите «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска Ресурсы:
Самый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure
, ни apt-get -reinstall install
восстанавливает символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default- (Start | Stop)
.
Скрипт ниже (протестирован) выглядит в сценарии после установки пакетов для команды update-rc.d
, которая добавляет сценарий запуска. Предыдущие ссылки должны были быть удалены, чтобы работать, поэтому update-rc.d -f [имя-скрипта] удаляет строку
. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README
, но это не критично.
#! / Bin / bash cd /etc/init.d & amp; & amp; & amp; для файла в *; do, если [-x "$ file"]; затем pkg = $ (dpkg-query -S "/etc/init.d/$file" | cut -d: -f1), если [-z "$ pkg"]; затем echo "** ПРЕДУПРЕЖДЕНИЕ ** Не найден соответствующий пакет, пропуская файл: $ file" else postinst = "/ var / lib / dpkg / info / $ pkg.postinst", если [-r "$ postinst"]; затем update = $ (grep -Po "(? & lt;! #) \ s * update-rc \ .d \ s + $ file \ s + ((start | stop | defaults) [\ s \ dS \.] +) + «$ postinst» | sed -e 's / ^ \ s * //' -e 's / \ s \ + / / g'), если [-n "$ update"]; затем sudo update-rc.d -f "$ file" удалить sudo $ update else, если [-e "/etc/init/$file.conf"]; то echo "$ file был перемещен в Upstart" else echo "Нет строки update-rc.d для $ file" fi fi else echo "Нет сценария после установки, найденного для $ pkg" fi fi else echo "Не является исполняемым, игнорирование файла: $ file "fi done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query - S /etc/init.d/[script-name]
- получает имя пакета, ответственного за файл less / var / lib / dpkg / info / [имя пакета ] .postinst
- найдите «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска Ресурсы:
Самый надежный способ вернуть символические ссылки - это переустановка пакетов, в которых есть initscript.
Я заметил, что ни dpkg-reconfigure
, ни apt-get -reinstall install
восстанавливает символические ссылки. Не все скрипты соответствуют стандартам LSB и не предоставляют строку # Default- (Start | Stop)
.
Скрипт ниже (протестирован) выглядит в сценарии после установки пакетов для команды update-rc.d
, которая добавляет сценарий запуска. Предыдущие ссылки должны были быть удалены, чтобы работать, поэтому update-rc.d -f [имя-скрипта] удаляет строку
. Я проверял, что все ссылки правильно помещены, единственным отсутствующим файлом был файл README
, но это не критично.
#! / Bin / bash cd /etc/init.d & amp; & amp; & amp; для файла в *; do, если [-x "$ file"]; затем pkg = $ (dpkg-query -S "/etc/init.d/$file" | cut -d: -f1), если [-z "$ pkg"]; затем echo "** ПРЕДУПРЕЖДЕНИЕ ** Не найден соответствующий пакет, пропуская файл: $ file" else postinst = "/ var / lib / dpkg / info / $ pkg.postinst", если [-r "$ postinst"]; затем update = $ (grep -Po "(? & lt;! #) \ s * update-rc \ .d \ s + $ file \ s + ((start | stop | defaults) [\ s \ dS \.] +) + «$ postinst» | sed -e 's / ^ \ s * //' -e 's / \ s \ + / / g'), если [-n "$ update"]; затем sudo update-rc.d -f "$ file" удалить sudo $ update else, если [-e "/etc/init/$file.conf"]; то echo "$ file был перемещен в Upstart" else echo "Нет строки update-rc.d для $ file" fi fi else echo "Нет сценария после установки, найденного для $ pkg" fi fi else echo "Не является исполняемым, игнорирование файла: $ file "fi done
Если вы хотите отремонтировать его вручную, вы можете использовать следующее:
dpkg-query - S /etc/init.d/[script-name]
- получает имя пакета, ответственного за файл less / var / lib / dpkg / info / [имя пакета ] .postinst
- найдите «update-rc.d», чтобы получить команду, необходимую для установки сценариев запуска Ресурсы: