Действительно ли возможно выполнить сценарий как сначала на завершении работы/перезагрузке на Debian?

Ширина полос прокрутки зависит от инструментария Виджета, используемого Вашей Настольной средой не на самом дистрибутиве. Это означает, что ширина указана темой (GTK, QT, и т.д.).

Поскольку Вы используете Монетный двор, я вполне уверен, это - GTK в Вашем случае, так изменения темы было бы достаточно для влияния на него. Много сайтов имеют большой выбор их (просто Google "gtk темы" :D).

Кроме того, можно вручную переопределить его путем создания названного файла .gtkrc-2.0 в Вашей домашней папке со следующей строкой slider-width=X где X желаемая ширина в пикселях.

Править: Вот список всех gtk свойств полос прокрутки, он мог бы прибыть в руку. https://wiki.gnome.org/Attic/GnomeArt/Tutorials/GtkThemes/GtkScrollbar

EDIT2: Извините, я не понял, что забыл упоминать что что опция в gtkrc-2.0 должен быть связан с виджетом. Корректный путь был бы:

style "scrollbar-style"
{
   slider-width = 9 # for example
}

class "GtkScrollbar"   style "scrollbar-style"
class "GtkVScrollbar"  style "scrollbar-style"
class "GtkHScrollbar"  style "scrollbar-style"

Так же можно открыть gtk файл темы и искать то же свойство и скорректировать его. Так или иначе это требует обновления для последнего и выхода из системы для первого.

5
04.01.2014, 21:54
2 ответа

Надлежащий способ сделать, что Вы хотите сделать, состоит в том, чтобы сделать пользовательский init сценарий, который перечисляет необходимые зависимости. В рамках того сценария Вы запускаете/останавливаете рассматриваемый сервис, в зависимости от того, называют ли со сценарием start или stop как первый параметр.

Можно запустить с простого сценария такой как /etc/init.d/motd как шаблон, поскольку это будет иметь все базовые детали, чтобы заставить все это работать вообще. В Вашем случае Вы хотите, чтобы сценарий указал

# Required-Stop: $remote_fs $syslog apache2 mysql

потому что Вам нужно remote_fs и syslog выполнение средств (но Вы не заботитесь о том, какой точный сервис предоставляет те услуги), и конкретно apache2 и mysql сервисное выполнение, в то время, когда действие остановки выпущено. Обратите внимание, что Java не является сервисом по сути, но использование его может иметь зависимости от сервисов, включая файловые системы.

Should-Stop и Required-Stop описаны в insserv (8) страница справочника как:

В обоих случаях система сценария должна постараться не останавливать сервисы, которые объявляются этими двумя Stop теги до сценария включая эти теги останавливаются.

Имена от Provides (литеральные сервисные названия, нет $ подпишитесь вначале) сервиса init сценарии, и от /etc/insserv.conf (названия средства, $ подпишитесь вначале).

Когда у Вас есть сценарий путем, Вы хотите его, устанавливаете его использование update-rc.d или непосредственно использование insserv.

1
27.01.2020, 20:40

Если Вы хотите выполнить сценарий только на завершении работы, Вам не нужно:

# Required-Start:    $remote_fs $syslog

Можно оставить это пустым.

Каждый сценарий имеет Provides запись, которая определяет названия других сценариев, которые можно использовать в Required-Start и Required-Stop директивы. Порядок инвертируется в этих двух полях. Если что-то должно запуститься перед сценарием необходимо поместить его в Required-Start директива. Но если сценарий должен остановиться перед определенным сервисом название той службы должно быть помещено в Required-Stop.

Так, в Вашем примере Вы хотите запустить скрипт перед апачем и mysql завершением на завершении работы. Все, что необходимо сделать, должно проверить Provides директива в соответствующих init файлах.

$ cat /etc/init.d/apache2
...
# Provides:          apache2
...

и:

$ cat /etc/init.d/mysql
...
# Provides:          mysql
...

Теперь Вы просто добавляете apache2 и mysql к Вашему сценарию под Required-Stop директива:

# Required-Stop: apache2 mysql

Можно читать больше о заголовке init сценария здесь. Существует также некоторая информация относительно названий средства, например, упомянутый $remote_fsи $syslog:

$local_fs - все локальные файловые системы смонтированы. Все сценарии, которые пишут в/var/, должны зависеть от этого, если они уже не зависят от $remote_fs.

$network - низкоуровневые сети (плата Ethernet; может подразумевать PCMCIA, работающий),

$named - демоны, которые могут обеспечить разрешение сетевых имен (если есть), работают. Например, демоны для запросов DNS, NIS +, или LDAP.

$portmap - демоны, обеспечивающие сервису SunRPC/ONCRPC portmapping, как определено в RFC 1833 (если есть), выполняют всех удаленных

$remote_fs - все файловые системы смонтированы. В некоторых средах выполнения LSB файловые системы, такие как/usr могут быть удаленными. Если для сценария нужен смонтированный/usr/, он должен зависеть от $remote_fs. Сценарии в зависимости от $remote_fs не должны зависеть от $local_fs. Во время завершения работы сценарии, которые должны работать прежде sendsigs, уничтожают все процессы, должен зависеть от $remote_fs.

$syslog - системный регистратор является операционным

$time - системное время было установлено, например, при помощи основанной на сети программы времени, такой как ntp или rdate, или через аппаратные Часы реального времени. Обратите внимание, что только в зависимости от ntp не закончится в точное время сразу после того, как ntp запустились. Обычно требуются минуты, пока ntp на самом деле не корректируют время. Также обратите внимание, что стандарт insserv.conf просто перечисляет hwclock как $time.

$all - средство, поддерживаемое insserv для запуска сценария после всех других сценариев, в конце последовательности начальной загрузки. Эта единственная работа для упорядочивания запуска, не прекращают заказывать. Не возможно зависеть от сценария, которые зависят от $all.

После изменения заголовка в init сценарии необходимо работать update-rc.d и это установит правильный порядок всех сценариев на основе их заголовков:

# update-rc.d script defaults 
3
27.01.2020, 20:40
  • 1
    мне нравится Ваш ответ больше, но я проскучал по другому парню. –  BrainStone 05.01.2014, 21:52

Теги

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