ਬੂਟ 'ਤੇ Mac VPN: launchd ਨੌਕਰੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ, ਟਨਲ ਦੀ ਨਹੀਂ
lint ਪਾਸ ਕੀਤੀ plist ਪ੍ਰਮਾਣਾਂ ਜਾਂ ਤਿਆਰੀ ਬਾਰੇ ਕੁਝ ਵੀ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ। ਨੌਕਰੀ ਨੂੰ ਉਸ ਦੇ ਸੈਸ਼ਨ ਨਾਲ ਮਿਲਾਓ, ਕਲਾਇੰਟ ਨੂੰ ਅੱਗੇ ਰੱਖੋ ਅਤੇ ਉਸੇ ਸੰਦਰਭ ਵਿੱਚ ਜਾਂਚੋ।
ਲੌਗਇਨ ਸਮੇਂ ਨੌਕਰੀ ਚੱਲਦੀ ਹੈ, ਲੌਗ ਕਲਾਇੰਟ ਦੇ ਸ਼ੁਰੂ ਹੋਣ ਨੂੰ ਦਿਖਾਉਂਦਾ ਹੈ, ਪਰ ਟਨਲ ਕਦੇ ਨਹੀਂ ਉੱਠਦਾ। ਜਾਂ ਉੱਠਦਾ ਹੈ ਅਤੇ ਕੁਝ ਸਕਿੰਟਾਂ ਬਾਅਦ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ। ਦੋਵਾਂ ਹਾਲਤਾਂ ਵਿੱਚ ਪ੍ਰਾਪਰਟੀ ਸੂਚੀ ਸ਼ਾਇਦ ਠੀਕ ਸੀ। launchd ਨੇ ਨੌਕਰੀ ਸਵੀਕਾਰ ਕਰਦਿਆਂ ਦੋ ਵਾਅਦੇ ਕੀਤੇ: ਇਹ ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਦੀ ਨਿਗਰਾਨੀ ਕਰੇਗਾ, ਅਤੇ ਉਹ ਪ੍ਰਕਿਰਿਆ ਚੱਲਦੀ ਰਹੇਗੀ। VPN ਨੂੰ ਦੋਵੇਂ ਚਾਹੀਦੇ ਹਨ, ਅਤੇ ਸਹੀ XML ਫਾਈਲ ਦੋਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਵੀ ਨਹੀਂ ਦਿੰਦੀ।
ਵੈਧ ਪ੍ਰਾਪਰਟੀ ਸੂਚੀ ਕੰਮ ਕਰਦੀ ਸੇਵਾ ਨਹੀਂ ਹੈ
plutil -lint ਬਣਤਰ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ। ਇਹ ਨਹੀਂ ਦੱਸ ਸਕਦੀ ਕਿ ਬਾਈਨਰੀ ਮੌਜੂਦ ਹੈ, ਇਸ ਕਲਾਇੰਟ ਸੰਸਕਰਣ ਦੁਆਰਾ ਆਰਗਿਊਮੈਂਟ ਸਮਰਥਿਤ ਹਨ, ਜਾਂ ਨੌਕਰੀ ਉਸ ਸੰਦਰਭ ਵਿੱਚ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਪ੍ਰਮਾਣ ਉਪਲਬਧ ਹਨ। ਇਹ ਅਰਥ-ਸ਼ਾਸਤਰੀ ਸਵਾਲ ਹਨ, ਅਤੇ launchd ਸਮੱਸਿਆ ਵਰਗੇ ਦਿਖਣ ਵਾਲੇ ਜ਼ਿਆਦਾਤਰ ਫੇਲ੍ਹ ਹੋਣ ਦਾ ਕਾਰਨ ਇਹੀ ਹੈ।
plutil -lint /Library/LaunchDaemons/com.example.vpn.plist
launchctl print system/com.example.vpn
ਨੌਕਰੀ ਲੋਡ ਹੋਈ ਮੰਨਣ ਦੀ ਬਜਾਏ ਦੂਜੇ ਹੁਕਮ ਦਾ ਆਉਟਪੁੱਟ ਪੜ੍ਹੋ। ਇਹ ਆਖਰੀ ਨਿਕਾਸ ਸਥਿਤੀ ਅਤੇ ਸੇਵਾ ਚੱਲ ਰਹੀ ਹੈ ਜਾਂ ਨਹੀਂ ਦੱਸਦਾ ਹੈ, ਜੋ ਪਰੋਫਾਈਲ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ "ਕਦੇ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਈ" ਅਤੇ "ਸ਼ੁਰੂ ਹੋ ਕੇ ਮਰ ਗਈ" ਵਿੱਚ ਫ਼ਰਕ ਕਰਦਾ ਹੈ।
ਏਜੰਟ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦੇ ਹਨ, ਡੈਮਨ ਨਹੀਂ
Apple ਦੀ launchd ਦਸਤਾਵੇਜ਼ ਪ੍ਰਤੀ ਵਰਤੋਂਕਾਰ ਏਜੰਟਾਂ ਨੂੰ ਸਿਸਟਮ ਡੈਮਨਾਂ ਤੋਂ ਵੱਖ ਕਰਦੀ ਹੈ। ਏਜੰਟ ਲੌਗਇਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ ਦੇ ਸੰਦਰਭ ਵਿੱਚ, ਉਸ ਦੀ ਕੀਚੇਨ ਅਤੇ ਵਾਤਾਵਰਣ ਨਾਲ ਚੱਲਦਾ ਹੈ। ਡੈਮਨ ਉਸ ਸੈਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਚੱਲਦਾ ਹੈ, ਅਤੇ ਨੌਕਰੀ ਨੂੰ ਸਿਸਟਮ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਭੇਜਣ ਨਾਲ ਵਰਤੋਂਕਾਰ ਦੇ ਇੰਟਰੈਕਟਿਵ ਪ੍ਰਮਾਣ ਦੁਬਾਰਾ ਨਹੀਂ ਬਣਦੇ।
ਡਿਜ਼ਾਈਨ ਇਹੀ ਫ਼ਰਕ ਤੈਅ ਕਰਦਾ ਹੈ। ਜੇ ਕਨੈਕਸ਼ਨ ਲਈ ਕਿਸੇ ਵਿਅਕਤੀ ਦਾ ਲੌਗਇਨ ਜਾਂ MFA ਸੂਚਨਾ ਦੀ ਮਨਜ਼ੂਰੀ ਲੋੜੀਂਦੀ ਹੈ, ਤਾਂ ਸਮਰਥਿਤ ਬੰਦੋਬਸਤ ਹੈ ਲੌਗਇਨ ਤੋਂ ਬਾਅਦ ਚੱਲਣ ਵਾਲੀ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਨੌਕਰੀ। ਜੇ ਇਹ ਬਿਨਾਂ ਕਿਸੇ ਲੌਗਇਨ ਦੇ ਚੱਲਣਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਕਲਾਇੰਟ ਨੂੰ ਆਪਣੀ ਨਵੀਨੀਕਰਨ ਅਤੇ ਰੱਦ ਕਰਨ ਪ੍ਰਕਿਰਿਆ ਵਾਲੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਬਿਨਾਂ-ਦੇਖਭਾਲ ਪਛਾਣ ਚਾਹੀਦੀ ਹੈ। ਗਲਤ ਕਤਾਰ ਚੁਣਨ ਨਾਲ ਸਾਫ਼ ਸ਼ੁਰੂ ਹੋ ਕੇ ਪਹਿਲੇ ਪ੍ਰਮਾਣਿਕਤਾ ਕਦਮ 'ਤੇ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲੀ ਨੌਕਰੀ ਬਣਦੀ ਹੈ।
ਇਸ ਫ਼ਰਕ ਨੂੰ ਆਰਗਿਊਮੈਂਟ ਐਰੇ ਵਿੱਚ ਪਾਸਵਰਡ ਰੱਖ ਕੇ ਜਾਂ ਸਰਟੀਫਿਕੇਟ ਜਾਂਚ ਬੰਦ ਕਰਕੇ ਨਾ ਢਕੋ। ਦੋਵੇਂ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਨੂੰ ਪੜ੍ਹਨਯੋਗ ਫਾਈਲ ਵਿੱਚ ਸਥਾਈ ਭੇਤ ਬਣਾ ਦਿੰਦੇ ਹਨ, ਅਤੇ ਦੂਜਾ ਮਤਲਬ ਹੈ ਕਿ ਟਨਲ ਹਰ ਜਵਾਬ ਦੇਣ ਵਾਲੇ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਕਰਦਾ ਹੈ।
ਨਿਗਰਾਨੀ ਤਾਂ ਹੀ ਕੰਮ ਕਰਦੀ ਹੈ ਜੇ ਪ੍ਰਕਿਰਿਆ ਅੱਗੇ ਰਹੇ
ਆਪਣੇ ਆਪ ਨੂੰ ਡੈਮਨ ਬਣਾਉਣ ਵਾਲਾ ਕਲਾਇੰਟ ਕੰਟਰੋਲ ਤੁਰੰਤ launchd ਨੂੰ ਵਾਪਸ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਨਿਗਰਾਨ ਪਹਿਲਾਂ ਹੀ ਖ਼ਤਮ ਹੋਈ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਵੇਖਦਾ ਹੈ। ਟਨਲ ਉੱਪਰ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ launchd ਸਮਝਦਾ ਹੈ ਕਿ ਨੌਕਰੀ ਫੇਲ੍ਹ ਹੋਈ, ਅਤੇ ਇਸ ਦੀ ਮੁੜ-ਸ਼ੁਰੂ ਨੀਤੀ ਤੁਹਾਡੇ ਇਰਾਦੇ ਤੋਂ ਬਿਨਾਂ ਕੁਝ ਕਰਦੀ ਹੈ।
ਕਲਾਇੰਟ ਦਾ ਦਸਤਾਵੇਜ਼ੀ ਅੱਗੇ ਵਾਲਾ ਜਾਂ ਸੇਵਾ ਮੋਡ ਵਰਤੋ। ਜੇ ਉਤਪਾਦ ਦੀ ਆਪਣੀ ਸਮਰਥਿਤ ਸਟਾਰਟਅੱਪ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ, ਤਾਂ ਉਸ ਨੂੰ ਅੱਗੇ ਰਹਿਣਾ ਅਤੇ ਨੈੱਟਵਰਕ ਸਟੈਕ ਨੂੰ ਸੌਂਪਣਾ ਪਹਿਲਾਂ ਹੀ ਪਤਾ ਹੈ; ਕਸਟਮ ਨੌਕਰੀ ਵੱਖਰਾ ਡਿਜ਼ਾਈਨ ਹੈ, ਉਸ ਦੀ ਸੁਧਾਰ ਨਹੀਂ।
ਨੌਕਰੀ ਨੂੰ ਵਿਲੱਖਣ ਲੇਬਲ, ਇੱਛਤ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਅਤੇ ਜਾਣਬੁੱਝ ਕੇ ਬਣਾਇਆ ਆਰਗਿਊਮੈਂਟ ਐਰੇ ਦਿਓ। ਐਰੇ shell ਹੁਕਮ ਲਾਈਨ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਪਾਈਪ ਅਤੇ ਰੀਡਾਇਰੈਕਸ਼ਨ ਉੱਥੇ ਨਹੀਂ ਚੱਲਦੇ, ਅਤੇ ਹਵਾਲਿਆਂ ਦਾ ਵਿਵਹਾਰ ਵੱਖਰਾ ਹੈ। ਪ੍ਰਬੰਧਕ ਦੇ ਟਰਮੀਨਲ ਵਿੱਚ ਸਫਲ ਹੋਣ ਵਾਲਾ ਹੁਕਮ ਵੱਧ ਤੋਂ ਵੱਧ ਮੁਢਲੀ ਜਾਂਚ ਹੈ।
ਪ੍ਰਮਾਣਾਂ ਨੂੰ ਬਿਨਾਂ ਸੂਚਨਾ ਦੇ ਕੰਮ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ
ਬਿਨਾਂ-ਦੇਖਭਾਲ ਕਾਰਜ ਪ੍ਰਮਾਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਹਟਾਉਣ ਦੀ ਬਜਾਏ ਹਿਲਾਉਂਦਾ ਹੈ। ਕਿਸੇ ਨੂੰ ਪਛਾਣ ਦੀ ਮਾਲਕੀ ਲੈਣੀ ਹੈ, ਉਹ ਕਿੰਨਾ ਚਿਰ ਜੀਵੇਗੀ ਇਹ ਤੈਅ ਕਰਨਾ ਹੈ ਅਤੇ ਇਹ ਕਿਵੇਂ ਬਦਲੀ ਜਾਂਦੀ ਹੈ ਦਸਤਾਵੇਜ਼ ਕਰਨਾ ਹੈ। ਮਿਆਦ ਦੀ ਨਿਗਰਾਨੀ ਤੋਂ ਬਿਨਾਂ ਸਰਟੀਫਿਕੇਟ ਕੈਲੰਡਰ 'ਤੇ ਤਾਰੀਖ ਵਾਲਾ ਰੁਕਾਵਟ ਬਣ ਜਾਂਦਾ ਹੈ।
ਭੇਤ ਆਰਗਿਊਮੈਂਟਾਂ ਅਤੇ ਨੌਕਰੀ ਦੇ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਤੋਂ ਦੂਰ ਰੱਖੋ। ਜੇ ਕਲਾਇੰਟ ਸੁਰੱਖਿਅਤ ਭੰਡਾਰ ਤੋਂ ਪ੍ਰਮਾਣ ਪੜ੍ਹਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਹ ਰਾਹ ਵਰਤੋ, ਅਤੇ ਜਾਂਚੋ ਕਿ ਨੌਕਰੀ ਦਾ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸੰਦਰਭ ਭੰਡਾਰ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ। root ਵਜੋਂ ਚੱਲਣ ਵਾਲਾ ਡੈਮਨ ਆਮ ਤੌਰ 'ਤੇ ਲੌਗਇਨ ਕੀਚੇਨ ਆਈਟਮ ਨਹੀਂ ਪੜ੍ਹ ਸਕਦਾ, ਅਤੇ ਇਹ ਉਹ ਵੇਰਵਾ ਹੈ ਜੋ ਸਿਰਫ਼ ਸਿਸਟਮ ਸੰਦਰਭ ਵਿੱਚ ਦਿਸਦਾ ਹੈ।
ਤਿਆਰ ਦਾ ਮਤਲਬ ਨਿਰਧਾਰਤ ਕਰੋ, ਫਿਰ ਉੱਥੇ ਜਾਂਚੋ
ਸਫਲ ਸ਼ੁਰੂਆਤ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਹੋਈ। ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦੀ ਕਿ ਨੈੱਟਵਰਕ ਉੱਪਰ ਹੈ, ਗੇਟਵੇ ਨੇ ਪਛਾਣ ਸਵੀਕਾਰ ਕੀਤੀ, ਜਾਂ ਨਿੱਜੀ ਐਪਲੀਕੇਸ਼ਨ ਪਹੁੰਚਯੋਗ ਹੈ। ਜੇ ਹੋਰ ਕੁਝ ਟਨਲ 'ਤੇ ਨਿਰਭਰ ਹੈ, ਤਾਂ ਉਸ ਨੂੰ ਨੌਕਰੀ ਦਾ ਸ਼ੁਰੂ ਸਮਾਂ ਨਹੀਂ, ਕਨੈਕਸ਼ਨ ਨੂੰ ਦਰਸਾਉਣ ਵਾਲਾ ਤਿਆਰੀ ਸੰਕੇਤ ਚਾਹੀਦਾ ਹੈ।
ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਸੀਮਿਤ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਅਤੇ ਗੁੰਮ ਨੈੱਟਵਰਕ ਅਤੇ ਰੱਦ ਕੀਤੇ ਪ੍ਰਮਾਣ ਵਿੱਚ ਫ਼ਰਕ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਹਰ ਫੇਲ੍ਹਤਾ 'ਤੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਮਿਆਦ ਪੁੱਗਿਆ ਸਰਟੀਫਿਕੇਟ ਠੀਕ ਨਹੀਂ ਕਰ ਸਕਦਾ ਅਤੇ ਅਸਲੀ ਕੋਸ਼ਿਸ਼ ਨੂੰ ਲੁਕਾਉਣ ਵਾਲੇ ਇਕੋ ਜਿਹੇ ਯਤਨਾਂ ਨਾਲ ਭਰਿਆ ਲੌਗ ਬਣਾਉਂਦਾ ਹੈ।
ਨੌਕਰੀ ਨੂੰ ਉਸ ਸੰਦਰਭ ਵਿੱਚ ਸਵੀਕਾਰ ਕਰੋ ਜਿੱਥੇ ਇਹ ਅਸਲ ਵਿੱਚ ਚੱਲੇਗੀ: ਬੂਟ 'ਤੇ ਨੈੱਟਵਰਕ ਨਹੀਂ, ਆਮ ਲੌਗਇਨ, ਨੀਂਦ ਤੋਂ ਜਾਗਣਾ ਅਤੇ ਨਿਯੰਤਰਿਤ ਰੁਕਾਵਟ। ਫਿਰ ਨੌਕਰੀ ਦਾ ਲੇਬਲ, ਕਲਾਇੰਟ ਸੰਸਕਰਣ ਅਤੇ ਪਰੋਫਾਈਲ ਸੋਧ ਇਕੱਠੇ ਦਰਜ ਕਰੋ, ਤਾਂ ਜੋ ਅਗਲਾ ਵਿਅਕਤੀ ਇੱਕ ਵਾਰ ਚੱਲੀ ਫਾਈਲ ਦੀ ਥਾਂ ਸ਼੍ਰੇਯਸ਼ੀਲ ਸੇਵਾ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈ ਸਕੇ।