Điểm:0

Thực thi tập lệnh shell có thể nhìn thấy dưới dạng sudo khi đăng nhập trong thư mục chính

lá cờ jp

Tôi có một tập lệnh hoạt động tốt khi tôi đặt nó theo cách thủ công vào /home/ubuntu thư mục và thực thi thủ công với quyền sudo (Nó phải được chạy từ thư mục $HOME).

Đường dẫn kịch bản là:

/home/ubunt/script.sh

..và trông như thế này

#!/bin/bash
Sudo add-apt-repository -y ppa:maas/3.0-next
cập nhật sudo apt
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --username ubuntu --password password --email [email protected] --ssh-import gh:wt-b
...

Tôi muốn làm cho nó chạy khi đăng nhập (một lần) và tôi cần xem điều gì đang xảy ra (một dòng cmd trực quan).

Tôi đã kiểm tra các tùy chọn với /etc/init.d thư mục (và cả thư mục /lib/systemd/hệ thống nơi tôi kích hoạt dịch vụ qua systemctl), gọi tập lệnh qua dòng lệnh sau

#!/bin/bash
gnome-terminal -e '/home/ubuntu/script.sh'

hoặc không có giao diện cmd hiển thị

#!/bin/bash
nguồn /home/ubuntu/script.sh

of nhưng nó không thành công và chỉ cài đặt một số thành phần.

Bất kỳ ý tưởng? Cảm ơn

Điểm:2
lá cờ cn

Nhu cầu kỳ lạ, để tự động cài đặt lại các gói một cách tự động trong khi đăng nhập. Tuy nhiên, bạn có thể có lý do chính đáng.

Bạn có thể sử dụng "Ứng dụng khởi động" để tự động khởi động thiết bị đầu cuối sau khi đăng nhập, sau đó khởi động tập lệnh của bạn.

  1. Thay đổi tập lệnh của bạn và xóa sudo. Bạn sẽ chạy toàn bộ tập lệnh với quyền root.
  2. Tự động khởi động Gnome Terminal, trình giả lập thiết bị đầu cuối mặc định của máy tính để bàn Ubuntu như sau: gnome-terminal -- Sudo <path-to-your-script>

Khi đăng nhập, thiết bị đầu cuối sẽ khởi chạy và bạn sẽ thấy lời nhắc nhập sudo mật khẩu mở khóa. Sau khi nhập mật khẩu, tập lệnh sẽ chạy và đầu ra sẽ xuất hiện trong thiết bị đầu cuối.

Khi tập lệnh kết thúc, thiết bị đầu cuối sẽ đóng lại. Để ngăn điều đó xảy ra, bạn có thể thêm lệnh "bash" để giữ cho trình bao (và trình giả lập thiết bị đầu cuối) mở hoặc sử dụng lời nhắc chẳng hạn như

read -rsn1 =p $'Nhấn phím để tiếp tục\n'
Andy McRae avatar
lá cờ jp
Chào, cảm ơn cho câu trả lời của bạn. Vì vậy, tôi đã tạo một tệp sh.desktop nơi tôi đặt mã bên trong [Mục nhập máy tính để bàn] Loại=Ứng dụng Exec="/home/ubuntu/script.sh" Ẩn = sai NoDisplay=false X-GNOME-Autostart-enabled=true Tên[en_IN]=Maas Tên=MaasSetup Comment[en_IN]=Maas Comment=MaasSetup và tôi đăng xuất và đăng nhập lại nhưng điều này không làm được gì cả. Tôi đã kiểm tra các đường dẫn và chúng đúng. Tôi nghĩ rằng các tác vụ khởi động chỉ hoạt động với các tệp .desktop chứ không phải với các tệp sh đúng không? Lời chào hỏi
vanadium avatar
lá cờ cn
Bạn có thể khởi chạy "Ứng dụng khởi động" để thêm lệnh khởi động. Điều đó thực sự sẽ tạo một trình khởi chạy .desktop trong thư mục tự khởi động. Đối với lệnh cần thiết, hãy đọc lại câu trả lời của tôi một cách cẩn thận.
Andy McRae avatar
lá cờ jp
Cảm ơn. Nếu tôi có thể nhận được một ngón tay cái lên Nó sẽ rất tuyệt.
Điểm:0
lá cờ jp

Được rồi, vì vậy tôi đã tìm ra giải pháp với tác vụ khởi động được đề cập bởi vanadi.

Nhưng tôi nghĩ tôi sẽ làm cho nó rõ ràng hơn một chút.

Tôi sử dụng 3 tệp:

Hai được đặt int the /home/ubuntu/ thư mục

  1. /home/ubuntu/init.sh

Và cái nào chứa

#!/bin/bash
gnome-terminal -- Sudo '/home/ubuntu/script.sh'
  1. /home/ubuntu/script.sh

chứa mã thực tế mà tôi muốn thực thi

#!/bin/bash
Sudo add-apt-repository -y ppa:maas/3.0-next
cập nhật sudo apt
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --username ubuntu --password password --email [email protected] --ssh-import gh:wt-b

...

Và sau đó, chúng tôi cần kích hoạt ứng dụng khởi động bằng cách đặt tệp cấu hình vào /etc/xdg/tự khởi động thư mục 3) /etc/xdg/autostart/conf.desktop

Trong đó có thông tin sau:

[Mục nhập máy tính để bàn]
Phiên bản=1.0
Tên=LordofSpaghetti
Bình luận=Mì Ý ngon
Exec=/home/ubuntu/init.sh
Đường dẫn=/home/ubuntu/
Thiết bị đầu cuối = đúng
Loại=Ứng dụng
X-GNOME-Autostart-enabled=true
Categories=Tiện ích;Phát triển

Sau đó, khi tôi khởi động lại máy đăng xuất và đăng nhập lại, tôi nhận được lời nhắc hỏi mật khẩu sudo.Và sau đó mọi thứ hoạt động tốt. Cảm ơn vanadi đã giúp đỡ.

raj avatar
lá cờ cn
raj
Bạn không cần tạo tệp theo cách thủ công ở bước 3). Như @vanadium đã nói, hãy mở "Ứng dụng khởi động" từ Công cụ hệ thống và thêm `/home/ubuntu/init.sh` vào danh sách các chương trình tự động khởi động cùng với phiên. Tuy nhiên, vì bạn đã thực hiện việc này theo cách thủ công nên không cần phải thực hiện lại việc này :)
Andy McRae avatar
lá cờ jp
Trên thực tế, tôi cần phải làm như vậy vì nó là một phần của quy trình tự động hóa nơi chúng tôi triển khai nhiều máy. Và tôi không thể khởi động tệp script.sh trực tiếp từ tệp .desktop vì tệp .desktop dường như không thể khởi động trực tiếp gnome-desktop. hy vọng nó giúp

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.