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 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?
Câu trả lời:
Đầu tiên đặt tập lệnh của bạn vào /usr/bin
và 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 example
hoặc Exec=sudo example.sh
chạ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.
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 sudo
mà 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/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
Để 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:
/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
create_trigger.sh
và run_command.sh
.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/crontab
tệ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.