2010-12-16 28 views
17

Làm thế nào để bạn ngăn chặn thoát khỏi gnome-terminal sau khi lệnh đã cho của nó đã thoát?Ngăn chặn thiết bị đầu cuối Gnome từ thoát sau khi thực hiện

Tôi đang gọi gnome-terminal từ cronjob, để tạo thiết bị đầu cuối có thể truy cập cho người dùng. Các thiết bị đầu cuối ban đầu được đưa ra một chương trình cụ thể để chạy. ví dụ.

gnome-terminal --tab -e "/usr/bin/myprog" 

Điều này làm việc tốt, ngoại trừ khi "myprog" thoát, thiết bị đầu cuối gnome cũng vậy. Làm thế nào để giữ cho nó chạy, nhưng chỉ cần thả trở lại một dấu nhắc thiết bị đầu cuối?

+6

Một cuộc thảo luận về cùng một vấn đề: http://stackoverflow.com/câu hỏi/3512055/tránh-gnome-terminal-close-sau-script-thi hành –

+1

@Ignacio, đó là một thuật ngữ phổ biến. Google hiển thị hơn 100 nghìn kết quả cho nó ... – Cerin

+0

@Ignacio, thuật ngữ "vỏ" và "thiết bị đầu cuối" thường đồng nghĩa với nhau. Nếu từ vựng hoặc môi trường kỹ thuật của bạn khác, tốt. Xin lỗi vì sự nhầm lẫn. – Cerin

Trả lời

21

Hãy thử điều này:

gnome-terminal --tab -e "/bin/bash -c '/usr/bin/myprog; exec /bin/bash -i'" 
+0

Rất đơn giản. Cảm ơn. – Cerin

3

Tạo một kịch bản shell như thế này:

#!/bin/bash 
# myprog-wrapper.sh - runs /usr/bin/myprog and then starts a new bash session 
/usr/bin/myprog 
/bin/bash 

Cho shell script thực thi điều khoản.

Sau đó, thiết lập công việc định kỳ của bạn để gọi kịch bản này thay vì trực tiếp gọi myprog:

gnome-terminal --tab -e "/path/to/myprog-wrapper.sh" 

Thay /bin/bash với vỏ của bạn lựa chọn.

2

Bạn có thể sử dụng xterm hay rxvt-unicode thay vì gnome-terminal, cả hai đều có tùy chọn -hold cho mục đích này.

21

alt text

Tạo một hồ sơ cá nhân (tức là giữ), thiết lập "Khi lệnh thoát: Giữ nhà ga mở" và sau đó

$ gnome-terminal --tab --profile hold -e /usr/bin/myprog 
+0

Nên có một số cách để tạo hồ sơ với tùy chọn 'giữ thiết bị đầu cuối mở' được đặt thông qua dòng lệnh. –

+0

Tùy thuộc vào gnome-terminal của bạn, bạn có thể sử dụng gconf hoặc gsettings để đặt hoặc nhận giá trị tha của thuộc tính đó: 'gconftool-2 -g/apps/gnome-terminal/profiles/Profile0/exit_action' –

Các vấn đề liên quan