Скрипты запуска Linux

437
Y. Pei

Справочная информация: я использую сборку Arch Linux на своем ноутбуке. Система сидела там три года. Я переустанавливал пару раз, и во время переустановок я переносил старые файлы точек в моем домашнем каталоге. Это делает для меня почти невозможным рассказать / запомнить все конфигурации, которые я сделал. Я использую openbox в качестве WM и не имею никакой среды рабочего стола.

Теперь я хочу кое-что простое:

Я хочу, чтобы компьютер запускался tint2при запуске. Чтобы сделать это, я выполнял поиск и изучал ~/.xinitrcзапуски всякий раз, когда я запускаю startx, и ~/.config/openbox/autostartвыполнялся при запуске openbox.

Итак, я сначала сделал .xinitrcиз двух строк:

exec openbox tint2 & 

Потом побежал pkill xи startxопять openbox запустил как всегда, но не tint2.

Так почему же autostartтогда просто попробуем . Я написал одну строчкуautostart

tint2 & 

Перезагрузите X, ничего не произошло.

Я также chmod +xсделал сценарий автозапуска и попытался изменить строку на

(sleep 2s && tint2) & 

но openbox отказывался показывать панель задач tint2 при запуске.

Если я запускаю скрипт автозапуска в окне терминала, то он работает.

Я предполагаю, что вместо этого выполняются некоторые другие конфигурационные файлы / скрипты. Если это так, есть ли способ узнать, какие файлы они? Или просто, почему не работает скрипт xinitrc или autostart?

0

2 ответа на вопрос

1
Bolwerk

Традиционный способ сделать сырой .xinitrc - это структурировать его

process1 &
process2 &
process3 &
...
lastprocess

Последний процесс, без амперсанда, это «магический процесс», и закрытие его закрывает X. Традиционно, в twm, магический процесс был xterm. Когда процесс без амперсанда заканчивается, X закрывается. Если вы справитесь с последним процессом ( process4 &), X закроется. Я думаю, что ваш пример должен выглядеть так:

tint2 &
exec openbox-session

По крайней мере, в некоторых случаях я считаю, что пропуск амперсанда не имеет значения. Я делаю это случайно и время от времени без вреда для здоровья.

Также обязательно сделайте chmod u+x .xinitrc

Спасибо за ваш ответ, но правило гласит: «примите ответ, если он решил проблему», поэтому я принял свой собственный ответ. Y. Pei 9 лет назад 0
0
Y. Pei

Я решил проблему, заменив

exec openbox 

с

openbox-session 

в .xinitrc. Оказывается, autostartтолько работает с openbox-session.

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