Kịch bản khởi động Linux


0

Bối cảnh: Tôi đang chạy bản dựng Arch Linux trên máy tính xách tay của mình. Hệ thống đã được ngồi ở đó trong ba năm. Tôi đã cài đặt lại một vài lần và tôi đã chuyển các tệp chấm cũ trong thư mục nhà của mình trong quá trình cài đặt lại. Điều này khiến tôi gần như không thể nói / nhớ tất cả các cấu hình tôi đã thực hiện. Tôi sử dụng openbox như WM và không có môi trường máy tính để bàn nào trên đó.

Bây giờ tôi muốn một cái gì đó đơn giản:

Tôi muốn máy tính chạy tint2khi khởi động. Để làm điều này, tôi đã thực hiện một tìm kiếm và học ~/.xinitrcchạy bất cứ khi nào tôi chạy startx và ~/.config/openbox/autostartđược thực thi khi chạy openbox.

Vì vậy, lần đầu tiên tôi biến tôi .xinitrcthành hai dòng:

exec openbox
tint2 &

Sau đó chạy pkill xstartxmột lần nữa, openbox chạy như mọi khi, nhưng không phải tint2.

Vậy tại sao chúng ta hãy thử autostartsau đó. Tôi đã viết một lótautostart

tint2 &

Khởi động lại X, không có gì xảy ra.

Tôi cũng chmod +xd kịch bản tự khởi động và đã thử thay đổi dòng thành

(sleep 2s && tint2) &

nhưng openbox tiếp tục từ chối hiển thị cho tôi thanh tác vụ tint2 khi khởi động.

Nếu tôi chạy tập lệnh tự khởi động trong một cửa sổ đầu cuối thì nó hoạt động.

Tôi đoán là, một số tập tin / tập lệnh cấu hình khác được thực thi thay thế. Nếu đó là trường hợp, có cách nào để biết chúng là tập tin nào không? Hoặc đơn giản, tại sao tập lệnh xinitrc hoặc autostart không hoạt động?

Câu trả lời:


1

Cách truyền thống để làm một .xinitrc thô là để nó có cấu trúc như

process1 &
process2 &
process3 &
...
lastprocess

Quá trình cuối cùng, không có ký hiệu, là "quy trình ma thuật", và đóng nó lại đóng X. Theo truyền thống, trong twm, quy trình ma thuật là một xterm. Khi quá trình không có dấu và kết thúc, X đóng lại. Nếu bạn nền quá trình cuối cùng ( process4 &), X sẽ đóng. Tôi nghĩ rằng ví dụ của bạn sẽ giống như:

tint2 &
exec Openbox phiên

Ít nhất trong một số trường hợp, tôi thấy việc bỏ qua ký hiệu và dường như không quan trọng. Tôi làm điều đó một cách tình cờ bây giờ và sau đó không có hiệu ứng xấu.

Cũng đảm bảo làm chmod u+x .xinitrc


Cảm ơn câu trả lời của bạn, nhưng quy tắc nói "chấp nhận câu trả lời nếu nó giải quyết được vấn đề", vì vậy tôi đã chấp nhận câu trả lời của riêng tôi.
Y. Pei

0

Tôi đã giải quyết vấn đề bằng cách thay thế

exec openbox

với

openbox-session

trong .xinitrc. Hóa ra autostartchỉ chạy với openbox-session.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.