Tôi đang trong quá trình di chuyển tất cả các tập lệnh khởi động tùy chỉnh sang systemd. Tôi đã bắt gặp một tập lệnh sử dụng nhiều dịch vụ. Tôi không thể tìm ra cú pháp thích hợp để xử lý việc này hoặc nếu tôi cần tạo riêng .dịch vụ
tập tin đơn vị cho mỗi. Điều này có thể cho khuôn mẫu? Các Tài liệu đơn vị SystemD không cung cấp cho tôi nhiều thông tin, ngoại trừ cách tạo tệp mẫu (nối thêm @
sang tên) và cách sử dụng %tôi
để biểu thị một trường hợp.
người mới nổi ban đầu đại lý-bắt đầu-all.conf
nhật ký giao diện điều khiển
bắt đầu từ đại lý-bắt đầu
kịch bản
khai báo -a đại lý=("TimeZone" "Timeout" "Inquiry" "Refuse")
để nhập "${dealers[@]}"
làm
nếu danh sách initctl | grep "^đại lý ($type)"
sau đó
dừng loại đại lý=$type
fi
bắt đầu loại đại lý=$type
tiếng vang "đại lý $type bắt đầu"
xong
kịch bản kết thúc
Phần khác của nó, đại lý.conf
, nên được cắt và làm khô bằng cách sử dụng %tôi
bên trong ExecStart
phần, như:
ExecStart=/usr/bin/php -f /path/to/dealer%i.php
nhật ký giao diện điều khiển
ví dụ $type
dừng lại ở đại lý-dừng
kịch bản
sudo -u root php -f /path/to/dealer$type.php
kịch bản kết thúc
kịch bản dừng sau
nếu [ -z "$UPSTART_STOP_EVENTS" ]
sau đó
echo "dealer$type stopped at `date +"%F %T.%N"` Chạy 'initctl phát ra điểm dừng của đại lý' sau đó 'initctl phát ra điểm bắt đầu của đại lý' trên `tên máy chủ` để chạy lại." | mail -s "dealer$type Stopped" [email protected]
khác
echo "dealer$type đã bị dừng thủ công tại `date +"%F %T"`."
fi
kịch bản kết thúc
Tôi chỉ không hiểu cách dịch mảng trong phiên bản đầu tiên thành phiên bản systemd? Tôi có nên chia chúng thành các tệp đơn vị riêng lẻ không? Nếu vậy, thì đó không phải là vấn đề và có thể dễ dàng thực hiện. Tôi chỉ không chắc về cú pháp (nếu nó tồn tại) để làm những gì cú pháp đầu tiên đang làm.