Bài viết ngu ngốc về việc khởi chạy daemon trong Mac


0

Tôi đang thiết lập một ứng dụng có tên Jenkins trên Mac, đây là một công cụ xây dựng.

Có rất nhiều bài viết hữu ích về chủ đề này và tất cả chúng đều liên quan đến việc sửa đổi một số nguyên để chỉ đến một người dùng mới được tạo.

Họ TẤT CẢ nói bắt đầu / ngừng sử dụng sudo

 sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
 sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist

và tất cả họ đều nói rằng sẽ tạo một người dùng MỚI cho mục đích này (còn người dùng hiện tại thì sao?)

sudo dscl . create /Users/jenkins
sudo dscl . create /Users/jenkins PrimaryGroupID 1
sudo dscl . create /Users/jenkins UniqueID 300
sudo dscl . create /Users/jenkins UserShell /bin/bash
sudo dscl . create /Users/jenkins home /Users/Shared/Jenkins/Home/
sudo dscl . create /Users/jenkins NFSHomeDirectory /Users/Shared/Jenkins/Home/
sudo dscl . passwd /Users/jenkins

Bây giờ tôi mới dùng mac. Và điều này cho tôi biết về:

  1. Cách tự động khởi động ứng dụng / dịch vụ / daemon khi khởi động lại máy.
  2. Làm thế nào điều này cung cấp cho người dùng jenkins các quyền cần thiết?
  3. Ngoài ra, tôi cần phải đăng nhập với một người dùng để thay đổi số nguyên sau đó quay lại với một người dùng khác, v.v.
  4. Tôi thậm chí không thấy người dùng mới được tạo này trong / Users / jenkins, mặc dù mỗi dòng thực thi đều ổn. Tôi không thấy / Người dùng / jenkins.
  5. Làm thế nào để khởi động máy và đăng nhập như tài khoản quản trị viên khiến người dùng jenkins và daemon này khởi động? Tôi chỉ không nhận được nó? Tôi có cần thêm sudo vào một số tập lệnh khởi động trong quản trị viên không.

Ý tôi là đây thực sự là những gì tôi nghĩ mọi người nghĩ đến khi họ nghĩ về việc có một tiến trình daemon đang chạy. Không liên tục thực hiện sudo này và sudo đó.

Tôi hoàn toàn không biết chuyện gì sẽ xảy ra nếu tôi khởi động máy và đăng nhập bằng jenkins của người dùng. Làm cách nào để máy chủ jenkins chạy bất kể người dùng nào thực sự đăng nhập vào máy?

Lưu ý: Tôi đã thực hiện mọi thứ từ tài khoản quản trị viên. Không root.

Vì vậy, tôi cần một số thông tin đầy đủ về cách làm điều này.

Ý tôi là điểm của daemon là gì nếu tôi cần tải sudo mỗi khi máy khởi động?

Bây giờ tình huống chính xác của tôi là tôi đã có một người dùng quản trị jenkinsadmin mà tôi muốn sử dụng để giám sát máy, v.v. Tạo người dùng mới này như trên không cho tôi một người dùng có quyền quản trị viên. Trong thực tế thực thi sudo là không thể. Vậy làm cách nào để tự động khởi động jenkins này mỗi khi máy khởi động và tôi đăng nhập bằng jenkinsadmin?

Câu trả lời:


0

Bạn cần nói với Mac rằng Jenkins phải được khởi động ngay sau khi khởi động lại. Điều này được thực hiện bằng cách sử dụng cái gọi là LaunchDaemons. Để biết thêm thông tin về LaunchDaemons và LaunchAgents hãy xem trang Daemon và Dịch vụ của Tài nguyên nhà phát triển Táo .

Về cơ bản là một tập tin đặc biệt nằm trong /Library/LaunchDaemons khiến Mac bắt đầu một chương trình nhất định. Nếu tập tin bao gồm <key>RunAtLoad</key><true/> ứng dụng sẽ khởi động khi khởi động hệ thống và bạn sẽ không phải tự khởi động quy trình.

Bạn làm không phải cần một người dùng có quyền truy cập quản trị. Chỉ cần đặt người dùng là người dùng cho quá trình trong tệp LauchDaemon-config của bạn. Khi hệ thống bắt đầu quá trình, nó sẽ bắt đầu quá trình như người dùng đã cho. Và ngay cả khi bạn bắt đầu quá trình bằng tay bằng cách chạy sudo launchctl quá trình cuối cùng sẽ chạy như của bạn jenkinsadmin -Người dùng.


Và đây là cách bạn bật / tắt đúng cách khi khởi động: sudo defaults write /Library/LaunchDaemons/org.jenkins-ci RunAtLoad -bool NO
Nakilon
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.