Vị trí của các tệp * .service
Về vị trí của các tệp * .service , Eelco Dolstra (tác giả chính của Nix) gần đây đã trả lời một câu hỏi tương tự :
Nhiều gói thực tế cung cấp các đơn vị systemd, ví dụ:
$ nix-build -A utillinux.bin
$ ls -l ./result-bin/lib/systemd/system/
total 16
-r--r--r-- 2 root root 155 Jan 1 1970 fstrim.service
-r--r--r-- 5 root root 170 Jan 1 1970 fstrim.timer
-r--r--r-- 2 root root 248 Jan 1 1970 uuidd.service
-r--r--r-- 2 root root 185 Jan 1 1970 uuidd.socket
Vì vậy, tùy thuộc vào cách bạn xây dựng đạo hàm (tên chính thức cho "gói Nix"), các tệp * .service sẽ có sẵn trong $out/lib/systemd/system/
thư mục kết quả . (Trường hợp $out
bạn có thể cần thay thế các giá trị khác nhau, tùy thuộc vào tùy chọn bạn sử dụng nix-build
.)
Cụ thể, khi sử dụng nix-env -i (như trong trường hợp của bạn), bạn nên xem xét ~ / .nix-profile / như của bạn $out
. Ví dụ: trên một trong các máy của tôi:
$ ls -l ~/.nix-profile/lib/systemd/system/
total 8
-r--r--r-- 1 akavel akavel 268 sty 1 1970 nix-daemon.service
-r--r--r-- 1 akavel akavel 235 sty 1 1970 nix-daemon.socket
Kích hoạt các dịch vụ trong systemd của Ubuntu
Về phần câu hỏi này, tôi không chắc chắn làm thế nào để làm điều này vào lúc này, nhưng tôi quan tâm đến việc cấu hình một cái gì đó tương tự như những gì bạn mô tả.
Tôi nghĩ có thể cần thêm các "bộ phận" sau:
- một số thay đổi trong cấu hình hệ thống Ubuntu để làm cho nó biết về
~.nixprofile/...
thư mục; (bằng cách này: tôi tin rằng một số người dùng đặc biệt nên được tạo cho việc này, vì những tệp đó sau đó sẽ tương đương hiệu quả với việc có quyền truy cập sudo)
- một số tập lệnh "kích hoạt" sẽ chạy
systemctl enable --now $SERVICE
trên tất cả các dịch vụ do Nix cung cấp;
- lý tưởng, không phải tất cả các dịch vụ được xây dựng bởi Nix đều phải được bật tự động, chỉ những dịch vụ được liệt kê trong một số danh sách bổ sung, như
enabledServices = [ ... ];
hoặc một cái gì đó;
- lý tưởng là tập lệnh "kích hoạt" sẽ vô hiệu hóa các dịch vụ được kích hoạt trước đây từ Nix, nhưng hiện tại đã bị thiếu
enabledServices
(có thể bằng cách kiểm tra các dịch vụ đang hoạt động trong systemctl được tải từ đường dẫn .../.nix-profile/...
?)
- hoặc có thể ở trên có thể được thực hiện với một số điều 'nixos-guest.target' trung gian, cộng với
systemctl daemon-reload
?
.service
tập tin thay vì.system
tập tin?