ROS2 DDS νκ²½ μ€μ νμΈνκΈ°: `ps` λͺ λ Ήμ΄ νμ© κ°μ΄λ
π ROS2 DDS νκ²½ μ€μ νμΈνκΈ°: ps λͺ
λ Ήμ΄ νμ© κ°μ΄λ
ROS2λ₯Ό μ€ννλ€ λ³΄λ©΄
- DDS μ€μ νμΌ (
CYCLONEDDS_URI,FASTRTPS_DEFAULT_PROFILES_FILE) - ROS Domain ID (
ROS_DOMAIN_ID) - RMW μ ν (
RMW_IMPLEMENTATION)
μ΄λ° νκ²½ λ³μλ€μ΄ μ€μ μ€νλ νλ‘μΈμ€μ μ΄λ»κ² μ μ©λμλμ§ νμΈνκ³ μΆμ λκ° μμ΅λλ€.
μ΄λ΄ λ μ μ©νκ² μΈ μ μλ λκ΅¬κ° λ°λ‘ ps μ
λλ€.
1. μ€ν μ€μΈ νλ‘μΈμ€ μ°ΎκΈ°
λ¨Όμ νΉμ λ Έλ νλ‘μΈμ€λ₯Ό μ°Ύμ΅λλ€.
ps -ef | grep <νλ‘μΈμ€λͺ
>
μμ (talker λ Έλ μ€ν μ€):
ps -ef | grep talker
2. ps --pid λ‘ νΉμ νλ‘μΈμ€ 보기
--pid μ΅μ
μ μ¬μ©νλ©΄ νΉμ PIDμ νλ‘μΈμ€ μνλ₯Ό νμΈν μ μμ΅λλ€.
ps --pid <PID> -ef
<PID>: νλ‘μΈμ€ ID-ef: ν ν¬λ§· μΆλ ₯
3. μ€ν νκ²½ λ³μ νμΈνκΈ°
νκ²½ λ³μλ /proc/<PID>/environ μ κΈ°λ‘λμ΄ μμ΅λλ€.
μ΄λ₯Ό νμΈνλ©΄ μ€μ λ
Έλκ° μ΄λ€ DDS μ€μ κ³Ό Domain IDλ‘ μ€νλκ³ μλμ§ μ μ μμ΅λλ€.
cat /proc/<PID>/environ | tr '\0' '\n'
μμ μΆλ ₯:
CYCLONEDDS_URI=file:///root/ros_ws/cyclonedds.xml
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ROS_DOMAIN_ID=10
π μ΄ κ³Όμ μ ν΅ν΄ μ€μ λ Έλ μ€ν μ μ μ©λ DDS μ€μ , RMW μ’ λ₯, Domain ID λ₯Ό κ²μ¦ν μ μμ΅λλ€.
4. ps --ppid λ‘ μμ νλ‘μΈμ€ μΆμ νκΈ°
ROS2μμ launch λͺ
λ Ήμ μ°λ©΄ μ¬λ¬ λ
Έλκ° λΆλͺ¨ νλ‘μΈμ€(launch) μλμμ μ€νλ©λλ€.
μ΄λ --ppid μ΅μ
μ μ°λ©΄ νΉμ Launch νλ‘μΈμ€μ μμλ€μ λ³Ό μ μμ΅λλ€.
ps --ppid <Launch_PID> -ef
μμ (Launch PID = 91):
ps --ppid 91 -ef
→ μ΄λ€ λ Έλλ€μ΄ launchμ μν΄ μ€νλμλμ§ νλμ νμΈν μ μμ΅λλ€.
5. μ€μ νμ© μλ리μ€
- DDS μ€μ κ²μ¦→
CYCLONEDDS_URI,RMW_IMPLEMENTATIONνμΈ ps -ef | grep talker cat /proc/<PID>/environ | tr '\0' '\n'- ROS Domain νμΈ→ λ Έλλ€μ΄ κ°μ Domain IDλ₯Ό μ°λμ§ λΉκ΅
cat /proc/<PID>/environ | tr '\0' '\n' | grep ROS_DOMAIN_ID- Launch νΈλ¦¬ νμΈ→ launchμ μν΄ μ€νλ λ Έλ μ 체 νμΈ
ps --ppid <Launch_PID> -ef
β μ 리
ps --pid: νΉμ νλ‘μΈμ€ μν νμΈps --ppid: λΆλͺ¨ PID κΈ°μ€μΌλ‘ μμ νλ‘μΈμ€ μΆμ /proc/<PID>/environ: νλ‘μΈμ€ μ€ν νκ²½ λ³μ νμΈ
μ΄ λ°©λ²μ νμ©νλ©΄ ROS2 λ Έλκ° μ€μ μ΄λ€ DDS μ€μ κ³Ό Domain IDμμ λμνλμ§ μμ½κ² νμΈν μ μμ΅λλ€.