Thực thi tập lệnh trước khi tắt


21

Khi tôi tắt máy tính, tôi muốn hiển thị một số tác vụ đang chờ xử lý mà tôi phải thực hiện trước khi rời văn phòng ... Tôi đã làm một ứng dụng cục bộ để quản lý các tác vụ đó, về cơ bản tôi chỉ muốn chạy một lệnh và tắt sau khi tôi giết các ứng dụng thực thi.


Có thể hữu ích cho người dùng trong tương lai: Askubfox.com/a/747556/295286
Sergiy Kolodyazhnyy

Câu trả lời:


7

Bạn có thể thêm lệnh của bạn vào tập tin /etc/gdm/PostSession/Defaulttrước exit 0dòng.


Nếu tôi đi đến tùy chọn "Đăng xuất" thì nó sẽ hoạt động tốt, nhưng nếu tôi nhấn tắt máy sẽ xuất hiện gần như ngay lập tức màn hình đăng xuất màu tím ub Ubuntu và thực thi tập lệnh (trong màn hình xuất hiện logo ub Ubuntu với 5 quả bóng nhỏ). (thử nghiệm với giấc ngủ 20).
juanefren

Hộp thoại "Bạn có chắc chắn muốn tắt máy" được đặt ở đây: / usr / lib / Indicator-session / gtk-logout-helper và một phần của gói phù thủy phiên chỉ báo được viết bằng C / C ++ nên khá khó để chỉnh sửa. Bạn có thể gặp nhiều may mắn hơn khi hỏi một số danh sách gửi thư của gnome-guru;)
LassePoulsen

6

Bạn có thể làm điều này bằng cách tạo tập lệnh trong /etc/rc0.d (để tắt máy) và /etc/rc6.d (để khởi động lại). Để làm điều này, chạy:

gksu gedit /etc/rc0.d/K01mycustomscript

Chỉnh sửa tập lệnh tắt máy của bạn trong trình soạn thảo văn bản, sau đó chạy:

sudo chmod +x /etc/rc0.d/K01mycustomscript

Và nếu bạn muốn nó chạy trên khởi động lại thì hãy chạy nó:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

Nguồn: chủ đề diễn đàn này


Từ mô tả của anh ta có vẻ như anh ta muốn gọi một ứng dụng đồ họa, vì vậy nó cần quyền truy cập vào xserver. Trong trường hợp này, sử dụng init-scripts không hoạt động.
sepp2k

1
Vâng ... như @ sepp2k nói, tập lệnh đang chạy bên ngoài xserver :(
juanefren

4

Âm thanh như một câu hỏi cho superuser.com với tôi. Dù sao, sau một số Google tôi đã tìm thấy Làm thế nào để chạy một kịch bản khi đăng xuất? có nghĩa là thêm tập lệnh vào $ HOME / .bash_logout.

Nếu điều đó không làm việc, thêm

$HOME/.bash_logout

to / etc / gdm / PostSession / Mặc định để nó thực thi tập lệnh đăng xuất đúng cách.

Xem như trước khi tắt máy người dùng đã đăng xuất bằng mọi cách, điều này sẽ bao gồm cả hai cơ sở.


1
Vì anh ấy có thể không muốn tập lệnh chạy mỗi lần, anh ấy đăng xuất khỏi bash (tức là mỗi lần anh ấy đóng cửa sổ terminal), tôi không nghĩ nên viết lệnh vào .bash_logout. Tuy nhiên, viết nó vào PostSession / Mặc định có vẻ là một ý tưởng tốt đối với tôi.
sepp2k

Đã có tệp này, nhưng có vẻ như nó không hoạt động (Tôi đặt chế độ ngủ 20 và nó không chờ tắt máy.)
juanefren

.bash_logout sẽ không chạy khi bạn đóng thiết bị đầu cuối, nó sẽ chỉ chạy khi bạn đăng xuất khỏi phiên đăng nhập thiết bị đầu cuối (tức là nếu bạn đăng xuất realTTY) chứ không phải khi bạn đăng xuất khỏi gnome.
LassePoulsen

Tại sao điều này sẽ là một câu hỏi cho superuser? Nếu câu hỏi là về Ubuntu thì đó là về chủ đề.
NN

2

Nếu bạn làm ./app-to-run && sudo shutdown -h nowmáy tính thì nên tắt một khi ứng dụng chạy xong.


1
Đây sẽ là một tắt máy rất thô. Thay vào đó, bạn muốn gọi kịch bản tắt máy tính để bàn.
txwikinger

Sudo có thể yêu cầu người dùng nhập mật khẩu trong trường hợp ứng dụng chạy đủ lâu ... Vì vậy, nó sẽ không bao giờ tắt.
samb

1

Câu trả lời gần giống với Tommy Brunn nhưng không có nguy cơ bị treo khi được hỏi mật khẩu gốc:

sudo sh -c "./app-to-run; shutdown -h now"
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.