Các kịch bản khởi động cho Unity Desktop ở đâu?


11

Tôi muốn chạy một tập lệnh ngay khi xác thực lightdm của tôi thành công và Unity của tôi bắt đầu tải. và tôi muốn chạy các kịch bản của tôi như là một người dùng root.

kịch bản khởi động nằm ở đâu trong Unity?


Tôi muốn chạy tập lệnh sau khi tải X của tôi.
Shnd


@Shnd X thực sự bắt đầu trước lightdm, vì lightdm cũng chạy trong X. Vì vậy, nếu bạn muốn chạy thứ gì đó như người dùng của mình, bạn có thể muốn nó "sau khi xác thực lightdm" hoặc nói cách khác là "khi máy tính để bàn bắt đầu". Cũng có thể chạy tập lệnh khi máy tính của bạn chỉ khởi động, bất kể bạn có người dùng đã đăng nhập hay không (đó là những gì bắt đầu X chẳng hạn), đó là một câu hỏi hoàn toàn khác. Nếu bạn muốn chạy một cái gì đó như người dùng, bạn có thể muốn điều đó và câu trả lời phụ thuộc vào hệ thống init của bạn.
erikbwork

Câu trả lời:


5

Đầu tiên đặt tập lệnh của bạn vào /usr/binvà cho phép thực thi.

Bây giờ hãy tạo tệp .desktop /home/[user-name]/.config/autostart/để chạy tập lệnh của bạn chạy khi khởi động.

Ví dụ: - Đặt tên tệp kịch bản của bạn là "example" hoặc "example.sh"

Tạo tệp .desktop bằng gedit với các dòng sau và lưu dưới dạng filename.desktop trong /home/[user-name]/.config/autostart/

[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script

Ở đây Exec=sudo examplehoặc Exec=sudo example.shchạy tập lệnh của bạn dưới dạng root từ /usr/bin Cấp quyền thực thi cho tệp .desktop.

Bây giờ, Script chạy khi khởi động.


1
để chạy sudo mà không có mật khẩu, hãy xem Askubfox.com/questions/39281/ mẹo
Pandya

Cảm ơn rằng hoạt động. Nhưng với sự khởi đầu, bạn có thể làm điều tương tự có lẽ đơn giản hơn một chút (nhìn vào câu trả lời của tôi).
TuKsn

Điều này sẽ là hoàn hảo với một liên kết đến thông số kỹ thuật
erikbwork

Tôi không nghĩ tệp .desktop cần được gắn cờ thực thi.
Julian

4

Khả năng khác:

Tạo một tập tin trong $HOME/.config/upstart/my-upstart-script.conf

start on desktop-start
stop on desktop-end

script
  sudo fdisk -l > /home/[user-name]/upstart-test.txt        
end script

Chi tiết hơn nữa để Upstart :

http://ifdeflinux.blogspot.de/2013/04/upstart-user-simes-in-ubuntu-rared.html

http://upstart.ubfox.com/cookbook/

Infos để chạy sudomà không cần mật khẩu:

Làm thế nào để chạy một ứng dụng bằng sudo mà không cần mật khẩu?

Làm cách nào để chạy các lệnh sudo cụ thể mà không cần mật khẩu?


"$ HOME / .config / upstart" không có thư mục như vậy trên máy của tôi.
Kalamalka Kid

1
@KalamalkaKid Bạn sử dụng phiên bản Ubuntu nào? Thư mục mới bắt đầu nên ở vị trí này /home/yourusername/.config/upstart/. Mở giám đốc nhà của bạn bằng nautilus, nhấn Ctrl + H và bạn sẽ thấy thư mục .config
TuKsn

2

Để chạy một lệnh với quyền root , sau khi đăng nhập, có một mẹo đơn giản khác:

Phải mất hai bước:

  • tạo một tập tin kích hoạt khi đăng nhập
  • tạo một cronjob, chạy bằng root (set in /etc/crontab), để chạy một đoạn script nhỏ (chạy lệnh của bạn) khi và chỉ khi tệp kích hoạt tồn tại. Vì tệp kích hoạt được loại bỏ bởi cùng một tập lệnh, lệnh của bạn chỉ chạy một lần.

Trình tự sau đó là:

USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore

Các thiết lập

Hai tập lệnh nhỏ:

Một để tạo tập tin kích hoạt khi đăng nhập:

#!/bin/sh
touch $HOME/.trigger

và một trong hai chạy lệnh:

#!/bin/bash

FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root

if [ -f $FILE ]; then
   <your command here, run by root>
   rm -f $FILE
fi
  • sao chép cả hai tập lệnh vào hai tập tin trống, lưu chúng dưới dạng create_trigger.shrun_command.sh.
  • Vì lý do thuận tiện, làm cho cả hai thực thi.
  • Thêm lệnh sau vào Ứng dụng khởi động của bạn (Dash> Ứng dụng khởi động> Thêm)

    /path/to/create_trigger.sh
    
  • Thêm dòng sau vào /etc/crontabtệp ( sudo nano /etc/crontab):

    * * * * * root /path/to/run_command.sh
    

Bây giờ lệnh được xác định chạy một lần trong vòng một phút kể từ khi đăng nhập.

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.