Upstart: 한 번만 게시하세요.

Upstart: 한 번만 게시하세요.

사실: 작업에 사용하는 경우 작업이 발생할 때마다 start on <event>작업이 실행될 것입니다 . <event>이것누보 리치 요리법작업을 한 번만 실행하는 두 가지 방법이 언급됩니다.

첫 번째는 나에게 논리적인 것으로 보이며 에서 시작하여 영구적으로 실행되는 더미 작업을 만드는 것과 관련됩니다 <event>. 가상 작업은 영원히 실행되고 단일 인스턴스이므로 한 번만 시작되며 start on started <dummy-job>실제 작업에서 사용할 수 있습니다.

두 번째 방법은 훨씬 간단해 보입니다 start on startup and <event>.이 질문의 목적은 두 번째 접근 방식이 작동하는 이유를 이해하는 것입니다.. 이는 on start화합물로 구성된 이벤트를 처리하는 방법을 이해하는 것과 관련이 있습니다 and. 즉, <event>여러 번 발생하는데 복합 이벤트는 왜 한 번만 발생합니까? 복합 이벤트가 이후에만 다시 트리거될 수 있습니까?둘 다 startup그리고 <event>다시 트리거?이에 대한 확인을 찾고 있습니다.

답변1

나는 내 질문에 대한 경험적 답변을 제공하는 결과를 공유할 것입니다.

2개의 이벤트로 테스트했는데 desktop-session-start실제로 net-device-up복합 이벤트는 desktop-session-start and net-device-up각 이벤트가 실행될 때만 실행되는 것 같습니다.

특히 네트워크 시작(dhcp 완료) 후 ubuntu에 처음 로그인할 때 이 이벤트를 수신합니다. 그런 다음 네트워크를 전환하면 이벤트가 수신되지 않습니다. 마찬가지로, 네트워크가 연결된 상태에서 로그아웃/로그인하면 이벤트가 수신되지 않습니다. 이건 로그인해야만 볼 수 있어요그리고마지막 트리거 이후 네트워크가 다운되었습니다. 또는 마찬가지로 로그아웃한 후 인터페이스를 열면 마지막 트리거 이후 네트워크가 다운되었습니다.

답변2

이 표현식은 event-a와 event-b가 모두 발생한 경우에만 true이며, event-a and event-b작업이 실행되는 경우 두 이벤트를 모두 다시 내보내야 true가 됩니다.

관련 정보