Пиша приложение на Python, което трябва да работи по различен начин, в зависимост от системния контекст на хост/гост.
Това, от което се нуждая, е функция, която казва къде съм:
if IamRunningOnHost():
#start server if not running, connect to server
else: #running on guest
#use different ip, terminate if server not running
Сега най-лесният начин би бил да открия някои известни разлики във файловата система между хост и гост системата или да имам конфигурация, която редактирам ръчно всеки път, когато превключвам системния контекст.
Има ли по-изчистен и по-универсален начин за разграничаване, когато изпълнявам вътре във VirtualBox?
Редактиране1: Моят гост и хост са операционни системи linux.
Edit2: Пропуснах да спомена, трябва да се постигне чрез извикване на python и без необходимост от root права. Също така не искам да инсталирам допълнителен софтуер в госта. Просто искам да копирам и стартирам приложението без изискване за допълнителни системни промени. Предложеният дубликат „Откриване на виртуализирана ОС от приложение?“ следователно не е полезно за мен.
If/Else
) със съответните данни на хостовете. - person   schedule 03.04.2015lshw
,lscpu
,lspci
) Филтрирайте някаква конкретна статична информация, която ясно показва използването на VM или хост. Съхранявайте тази информация в променлива. Свържете променливата с нещо друго по ваш избор, като използватеif/else
. Едно просто предложение би било...if Variable = "VirtualBox"
стартиране на сървърelse use different IP
Грабнах екранна снимка за вас наlshw
в Ubuntu във виртуална машина. s29.postimg.org/aiphz4jmf/Capture.png - person   schedule 03.04.2015lshw | grep VirtualBox ; lspci | grep VirtualBox
е достатъчно добър и мога да го комбинирам сsubprocess.Popen
След това мога да получа отговора чрез.communicate()
както е предложено тук: stackoverflow.com/questions/3503879/ - person evolution   schedule 03.04.2015