डिफ़ॉल्ट / tmp को / home / उपयोगकर्ता / tmp में कैसे बदलें


14

क्या डेबियन आधारित प्रणालियों पर अस्थायी निर्देशिका सेट करने के लिए एक पर्यावरण चर है?

मेरे पास एक जावा एपलेट है जो उस एनवायरनमेंट वैरिएबल का उपयोग करता है और एक ही एप्लेट के दो इंस्टेंसेस को लॉन्च करते समय यह भ्रमित हो रहा है।


जवाबों:


17

मैं अनिश्चित हूं कि जावा एप्लेट वास्तव में शुरू होने से पहले पर्यावरण चर को देखेगा, लेकिन आप इसे संपादित / आदि / प्रोफाइल क्या कर सकते हैं और निम्नलिखित पंक्तियां जोड़ सकते हैं:

if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR

export TMPDIR TMP TEMP

इसे एक सच्चा टैम्प डाइरेक्टरी बनाने के लिए (जैसे फाइलें सत्र समाप्त होने पर चली जाती हैं, आप उपयोगकर्ता को .bash_logout और साथ ही कंकाल को .bash_logout (/etc/skel/.bash_logout) को शामिल करना चाहते हैं। :

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

लॉगआउट भाग खतरनाक है चर सेट नहीं होता है और आपका लॉग रूट के रूप में होता है! मैं इसे रूट खाते या व्हील समूह के किसी सदस्य से नहीं जोड़ूंगा! अपनी सावधानी से आगे बढ़ें।


3
मैं क्लीनअप को .bash_logout में बिल्कुल नहीं डालूंगा - अगर वे दो सत्र खोलते हैं और एक से बाहर जाते हैं तो क्या होगा? Tmpwatch का प्रयोग करें। :)
मिकीबी

यह एक बेहतर सफाई समाधान है, जो जोड़ने के लिए धन्यवाद। :)
ट्रू डिडैलिटी

NB: tmpwatchपोर्टेबिलिटी के लिए जा रहे किसी भी व्यक्ति के लिए बीएसएनडी (जैसे OSX) संस्करण यूनिक्स पर कमांड मौजूद नहीं है। मेरे CentOS बक्से हालांकि यह है। :)
कॉमटॉन्ग

8

वह फ़ाइल जिसे आप ढूंढ रहे हैं:

/etc/environment

आपको TEMP चर सेट करना होगा:

TEMP=/home/user/tmp

2
और यहां तक ​​किexport TEMP=/home/user/tmp
फेडिर RYKHTIK

@Fedir जो खोल में है, हाँ।
cstamas

2

यदि आप /home/user/tmpरिबूट पर साफ होना चाहते हैं , तो मेरा सुझाव है कि आप @rebootउपयोगकर्ता की व्यक्तिगत नौकरी जोड़ दें crontab


1

सी में, मैं पॉज़िफ़ सिस्टम के लिए टैम्पाइल () कॉल का उपयोग करूंगा , जिससे टकराव से बचा जा सके। इसलिए मैं पहले से ही इसे लागू करने की कोशिश करने से पहले एक समान जावा कॉल की तलाश करूंगा, यदि आप पहले से ही नहीं हैं।


यह मानता है कि वह एक अनुप्रयोग विकसित कर रहा है
TrueDuality

सच्चाई: आह, मेरी गलती
काइल ब्रांट

1
जावा है java.io.File.createTempFile। अब जोड़ा सुरक्षित आरएनजी के साथ।
टॉम हॉकिन -

1

जावा java.io.tmpdirअस्थायी निर्देशिका को कॉन्फ़िगर करने के लिए सिस्टम प्रॉपर्टी का उपयोग करता है । एक उचित JRE प्रणाली के आधार पर एक समझदार मूल्य पर सेट करेगा यदि स्पष्ट रूप से निर्दिष्ट नहीं किया गया है।


1

मेरे लिए यह काम किया जब मैं जावा का उपयोग करके एक जार फ़ाइल स्थापित करने का प्रयास कर रहा था।

export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"

मैं Red Hat Linux का उपयोग करता हूं। /apps/prod/tmpनया फ़ोल्डर है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.