Cách tự động thực thi tập lệnh shell khi đăng nhập vào Ubuntu


15

Làm cách nào để có được tập lệnh thực thi tự động khi tôi đăng nhập? Không phải khi máy khởi động và không phải cho tất cả người dùng, mà chỉ khi tôi (hoặc bất kỳ người dùng cụ thể nào có tập lệnh) đăng nhập thông qua Giao diện người dùng Gnome.

Từ việc đọc ở nơi khác tôi nghĩ nó nằm .bash_profiletrong thư mục nhà của tôi, nhưng đối với tôi nó không có tác dụng. Khi tôi thực hiện thủ công nó trong cửa sổ terminal bằng cách gõ ~/.bash_profilenó hoạt động, nhưng nó sẽ không tự động chạy khi tôi đăng nhập.

Tôi đang chạy Ubuntu 11.04. Quyền truy cập tệp trên .bash_profile của tôi là -rwx------. Không có .bash_profile tồn tại trong thư mục nhà của tôi trước khi tôi tạo nó ngày hôm nay.

Tôi dường như nhớ các phiên bản Linux cũ hơn có một .profiletệp cho mỗi người dùng, nhưng điều đó cũng không hoạt động.

Làm thế nào được thực hiện? Tôi có cần phải định cấu hình một cái gì đó khác để làm cho .bash_profile hoạt động không? Hoặc tập lệnh đăng nhập cho mỗi người dùng cần phải nằm trong một số tệp khác?


.bash_profile, .profile và .bashrc (là cái thực sự được sử dụng bởi ubfox) được tải mỗi khi bạn mở một thiết bị đầu cuối bash. Vì vậy, thực sự tôi không chắc chắn chúng sẽ được tải nếu bạn chỉ cần đăng nhập vào GDM.
Juan Sebastian Totero

Đăng phiên bản Ubuntu của bạn có thể giúp đỡ. Trong Ubuntu 10.10 .bashrc "hoạt động với tôi (TM)."
Vlueboy

Bạn có nghĩa là khi bạn đăng nhập vào GUI, hoặc vào shell?
Flimzy

bash tải chúng khi bạn khởi động shell mới, vì vậy chúng sẽ chỉ được tải khi bạn mở cửa sổ terminal hoặc đăng nhập vào terminal ảo chứ không phải khi bạn đăng nhập vào Gnome (GDM).
shiftycow

Tôi đang sử dụng Ubuntu 11.04, như tôi đã đề cập trong câu hỏi ban đầu.
Mike Rowave

Câu trả lời:


11

Bạn chỉ cần thêm lệnh sau vào System> Preferences> Startup Application:

bash /full/path/to/your/script.sh

Điều đó sẽ làm các trick ;)


Bạn biết không, tôi đã làm điều đó trước đây và nó không hoạt động ... ngoại trừ việc tôi không viết "bash" trước đường dẫn của kịch bản! Tôi sẽ thử nó với bash sau. Vì tò mò, khi bạn nhập nội dung nào đó qua GUI vào Ứng dụng khởi động, tập tin nào được đăng ký?
Mike Rowave

Các chương trình khởi nghiệp nên được đăng ký tại/etc/xdg/autostart
shiftycow

Thêm bash /home/myusername/scriptnamevào "Ứng dụng khởi động" đã hoạt động! Cảm ơn. Tuy nhiên, điều này có thể cụ thể đối với Gnome trên Ubuntu, đó là lý do tại sao tôi tự hỏi về nơi các mục trong mục trình đơn "Ứng dụng khởi động" được đăng ký, vì điều đó sẽ giống với các phiên bản Linux hiện đại khác.
Mike Rowave

2
/etc/xdg/autostartdường như là một tệp toàn hệ thống, không dành riêng cho người dùng.
Mike Rowave

Để biết các phiên bản mới hơn của ubfox,
TooTone

8

Vì vậy, về cơ bản, như gật đầu đề xuất, hãy tạo một trình khởi chạy máy tính để bàn: ~ / .config / autostart / script.desktop với các nội dung sau:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Sau đó tạo tập lệnh tự khởi động: ~ / bin / tự khởi động với nội dung bash của bạn:

#!/bin/bash
# Execute bash script below

Đảm bảo rằng ~ / bin / autostart có thể thực thi được


5

Bạn có thể thêm một dòng trong crontab -

crontab -e

Sau đó thêm dòng này vào tệp mở ra:

@reboot /path/to/your/cool/script

Điều này sẽ chạy tập lệnh khi khởi động lại. Để biết thêm chi tiết, xemman crontab


Tôi không biết tại sao, nhưng tôi không thể thực thi các tệp .sh trên "ứng dụng khởi động", do đó cách dễ nhất để thực hiện bây giờ là cron
Albert Català


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.