প্রারম্ভকালে কীভাবে ডাব্লুএসএল পরিচালিত পরিষেবাগুলি করবেন


10

এই সাইট এবং বিভিন্ন কিউ অনুসন্ধান করার পরে, এটি স্পষ্ট যে পরিষেবাগুলি এবং systemdডাব্লুএসএল এর জন্য উপলব্ধ নয়। আমার পিসি শুরু হওয়ার সাথে সাথে প্রতিবার ডাব্লুএসএল-তে একটি প্রোগ্রাম চালানো দরকার যাতে ক্রোনট্যাব কীভাবে ব্যবহার করতে হয় সে সম্পর্কে এই পৃষ্ঠাটি পড়েছিলাম: উইন্ডোজে (স্টার্টআপে) উবুন্টু পরিষেবা কীভাবে চালানো যায়? সুপার ব্যবহারকারী তবে আমি বিভ্রান্ত হয়ে পড়েছি কারণ ফর্ম্যাটটি ক্রন্টবায় ফর্ম্যাটটির সাথে মেলে না।

তদ্ব্যতীত, সেই নির্দিষ্ট প্রশ্নটি এসএসএইচ সার্ভারগুলির জন্য সুনির্দিষ্ট ছিল যার জন্য সুরক্ষার দিকটি বিবেচনা করা হয় এবং ধাপে অতিরিক্ত পদক্ষেপের ফলে জটিলতা দেখা দেয়। নির্বিশেষে, এই সন্ধানে অন্বেষণ করা পদক্ষেপগুলি চেষ্টা করা হয়েছে এবং তারা কার্যকর হয়নি। তদতিরিক্ত, এই প্রশ্নটি এসএসএইচ সার্ভারগুলির জন্য অত্যন্ত নির্দিষ্ট, যখন এই প্রশ্নটি একটি সাধারণ পরিবেশগত প্রয়োজনের সাথে সম্পর্কিত। ডাব্লুএসএলে পরিষেবা চালানোর জন্য আমার কীভাবে জানতে হবে (এতে এসএসএইচ সার্ভারগুলির মধ্যে অন্তর্ভুক্ত থাকতে পারে তবে সীমাবদ্ধ নয়)

কার্যকরী - উইন্ডোতে (প্রারম্ভকালে) উবুন্টু পরিষেবাটি কীভাবে চালানো যায় তার চেয়ে আরও সরল সমাধান প্রয়োজন ? প্রদান করে।

তবে এটি আমার ক্রোন:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
PATH=cd /usr/local/src/:cd xmr-stak-cpu:cd bin/
@reboot . sudo ./xmr-stak-cpu

আমি এটিও করেছি:

শুরুতে ব্যাশ / ক্রোন লুপ চালান

শেল: স্টার্টআপে লিনাক্স.বাট নামে একটি ফাইল তৈরি করুন

Paste: C:\Windows\System32\bash.exe -c 'while [ true ]; do sudo /usr/sbin/cron -f; done'

এটা কাজ করে না.

আমি কীভাবে ডাব্লুএসএলে একটি পরিষেবা চালাতে পারি? নাকি উইন্ডোজ ব্যবহার করার কোন উপায় আছে?

কারণ উইন্ডোজে আমি নিম্নলিখিতটি চেষ্টা করেছি: https://github.com/Mic Microsoft/WSL/issues/ 612 ব্যবহার করে

Run: When the computer starts, 
Action: Start a program, 
Program: c:\Windows\system32\bash.exe, 
Arguments: -c "sudo  /xmr-stak-cpu/bin/xmr-stak-cpu -D"
Start in:  /usr/local/src/

এবং আপনি অনুমান হিসাবে, এটি এখনও কাজ করে না। সত্যই আমি আশা করি আমি ডাব্লুএসএলে এটি করতে পারতাম কারণ এটি আমার পছন্দসই উপায় তবে আমি যে কোনও উপায় গ্রহণ করব।

আমার 96৯ গিগাবাইট র‍্যাম সহ একটি ওয়ার্কস্টেশন রয়েছে এবং এ হিসাবে আমি এটিকে ডুয়াল লিনাক্স / উইন্ডোজ মেশিন হিসাবে ব্যবহার করতে পছন্দ করব এবং আমার পাপি ল্যাপটপ নয়।

আমার লিনাক্স এবং উইন্ডোজ উভয়েরই কাজ আছে এবং উইন্ডোজ দ্বারা সরবরাহিত লিনাক্স সলিউশনটির সত্যই প্রয়োজন / পছন্দ করি।

আমি অন্য প্রশ্নটি পর্যালোচনা করেছি এবং মাইসিস নামে একটি প্যাকেজ রয়েছে যা একটি সমাধান সরবরাহ করে বলে মনে হচ্ছে তবে এটি মাইক্রোসফ্ট সরবরাহিত ইন্টিগ্রেশন থেকে প্রস্থান করেছে যা এগিয়ে যাওয়ার এক দুর্দান্ত উপায় ছিল।



1
এটি কোনও সম্ভাব্য সদৃশ নয় বরং এটির একটি বর্ধন। এই প্রশ্নে অন্বেষণ করা রুটিনগুলি আমার যা প্রয়োজন তা ছাড়িয়ে যায়। উপরন্তু, এটি একটি নির্দিষ্ট কোয়েশন অ্যাথলেটও সেই প্রশ্নটিকে বোঝায়। আপনি এই প্রশ্নটি পড়েন নি, তাই না?
seanbw

আপনার প্রশ্নটি পরীক্ষা করা হচ্ছে, আপনি sudo ... xmr-stak-cpuএকটি নির্ধারিত টাস্কটি ব্যবহার করছেন running - আপনি কি পাসওয়ার্ড জিজ্ঞাসা কমান্ড দিয়ে সমস্যা এড়াতে দৌড়ে গিয়ে visudoঅন্তর্ভুক্ত করেছেন %sudo ALL=NOPASSWD: /xmr-stak-cpu/bin/xmr-stak-cpu? আপনার কি (সত্যই) সুডোর দরকার? আপনি কি sudo সুবিধা ছাড়াই খনি চালনা করতে পারেন?
জাইমে

উত্তর:


8

ডাব্লুএসএলে, লিনাক্স বিতরণগুলি প্রথম লিনাক্স কমান্ড শুরু হওয়ার পরেই চালিত হয়। আপনি যদি একটি লিনাক্স ডিমন (একটি পরিষেবা) চালাতে চান তবে আপনাকে অবশ্যই লিনাক্সে সার্ভারটি কনফিগার করতে হবে এবং সেই লিনাক্স বিতরণে কোনও কমান্ড চালাতে হবে।

অনেকগুলি পৃষ্ঠা এবং উত্তর রয়েছে যা দেখায় যে কীভাবে আপনার কম্পিউটার শুরু হয় যখন ডাব্লুএসএল লিনাক্স শুরু করতে স্ক্রিপ্ট তৈরি করবেন

  • আপনি ব্যবহার করতে পারেন এমন একটি ডাব্লুএসএল-অটোস্টার্ট ভিবিএস স্ক্রিপ্ট রয়েছে । আপনি স্ক্রিপ্টটি ইনস্টল করতে পারেন এবং commands.txtকাস্টম লিনাক্স কমান্ডগুলি দিয়ে পরিবর্তন করতে পারেন ।
  • ডাব্লুএসএলে স্বয়ংক্রিয়ভাবে একটি এসএসএস সার্ভার শুরু করার জন্য একটি ধাপে ধাপে টিউটোরিয়াল রয়েছে
  • প্রারম্ভিক টাস্ক ( gpedit.mscকমান্ড ব্যবহার করে ) বা প্রারম্ভকালে চালানো একটি নির্ধারিত টাস্ক (এটি ব্যবহার করে taskschd.msc) হিসাবে প্রোগ্রামটি চালানোর জন্য নীতিগুলি তৈরি করার বিকল্প রয়েছে ।

দ্রষ্টব্য: যদি আপনার প্রোগ্রামটি অবশ্যই কার্যকর করা হয় sudo, আপনাকে অবশ্যই একটি পাসওয়ার্ড না জিজ্ঞাসা করে প্রোগ্রামটি শুরু করতে এটি কনফিগার করতে হবে।

  • visudoলিনাক্সে চালান এবং ফাইলের শেষে একটি লাইন যুক্ত করুন:%sudo ALL=NOPASSWD: /full/path/to/program

এই সমাধানটি আমি সন্ধান করছি। আমি চেষ্টা করব এবং দেখুন আমি এটি হ্যাক করতে পারি কিনা
seanbw

কেন এই শাস্তি দেওয়া হয়েছিল?
seanbw

ডাব্লুএসএল-অটোস্টার্ট স্ক্রিপ্টের জন্য +1। কেবলমাত্র খারাপ দিকই এটি প্রতিটি শুরুতে কোনও ইউএসি প্রম্পটকে ট্রিগার করে ...: /
ইনিগো

1
... সুতরাং আমি যেভাবে এটি করেছি তা ছিল ডাব্লুএসএল-অটোস্টার্ট স্ক্রিপ্টটি ব্যবহার করা, তবে আপনাকে যে নির্দেশাবলী রেজিস্ট্রিতে একটি স্টার্টআপ আইটেম তৈরি করতে বলা হবে তা এড়িয়ে যান। পরিবর্তে, একটি টাস্ক তৈরি করতে টাস্ক শিডিয়ুলারটি ব্যবহার start.vbsকরুন যাতে সর্বাধিক ব্যবহারকারীর প্রিভিলিজেসগুলি ব্যবহার করে লগইনে ফাইল চালানো হয় । আমি এখন প্রতিবারই আমার মেশিন শুরু করার সাথে নিঃশব্দে ডাব্লুএসএলে ক্রোন পরিষেবা শুরু করতে এটি চালাতে পারি- স্বপ্নের মতো কাজ করে;)
ইনিগো

4

আপনার প্রশ্নের জন্য আপনাকে ধন্যবাদ, এটি আমাকে এই সমাধানের দিকে পরিচালিত করেছে। এটি আমার সম্পূর্ণ, সাধারণীকরণের- এবং নির্দিষ্ট সমাধান particular এটি 3 টি পদক্ষেপ নিয়ে গঠিত:

  1. একটি ক্রোনজব তৈরি করুন
  2. প্রারম্ভকালে ক্রোনজব পরিষেবা চালনা / সক্ষম করুন
  3. ক্রোনজব পরিষেবাটি স্বয়ংক্রিয়ভাবে শুরু করার জন্য পাসওয়ার্ডের অনুরোধগুলি সরিয়ে দিন।

বাস্তবে আপনার সমস্যাটি ইতিমধ্যে কেবল 2 এবং 3 ধাপের সাথে সমাধান করা হয়েছে, তবে আপনি যেহেতু একটি ক্রোনজব দিয়ে এটি করার চেষ্টা করেছিলেন তাই আমি সেই পদক্ষেপটি সম্পূর্ণতার জন্যও যুক্ত করেছি।

1. একটি ক্রিয়াকলাপ ক্রোনজব তৈরি:

  1. ফোল্ডারে ব্রাউজ করুন /etc/
  2. তারপরে ফোল্ডারে /etc/প্রবেশ করুন:sudo nano crontab
  3. সেই ফাইলটিতে ক্রন্টব নামে আপনার কমান্ড প্রবেশ করুন।
  4. উদাহরণ: */1 * * * * root touch /var/www/myFile
  5. প্রতি মিনিটে myFileলোকেশন নামের একটি ফাইল তৈরি করতে /var/www/
  6. সম্পূর্ণতার জন্য: এর */1 * * * * root touch /var/www/myFileঅর্থ হবে: ঘন্টা প্রতি প্রতি 1 মিনিটে সেই ফাইলটি তৈরি করুন।

crontabফাইলটির উদাহরণ দেখতে পারা যায় (আমি কেবল শেষ পংক্তিটি যুক্ত করেছি, বাকী ইতিমধ্যে আমার সেটআপটিতে ছিল):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
*/2 * * * * root touch /var/www/myFile

2. ক্রোনজব পরিষেবা সক্ষম করা

ডাব্লুএসএল উবুন্টু ১.0.০৪-এর শুরুতে স্বয়ংক্রিয়ভাবে একটি কমান্ড চালাতে আপনি পারেন:

  1. সিডি টু /home/<your ubuntu user name>
  2. sudo nano .bashrc
  3. তারপরে পাঠ্য সম্পাদক ন্যানো একটি ফাইল তৈরি করে / খুলবে op .bashrc
  4. এই ফাইলটিতে ইতিমধ্যে অনেকগুলি উদাহরণ ইতিমধ্যে প্রদর্শিত হতে পারে, ডাব্লুএসএল উবুন্টু 16.04 শুরু হওয়ার পরে আপনার কমান্ডটি কার্যকর করতে, .bashrcফাইলটির প্রথম লাইনে আপনার কমান্ডটি লিখুন ।
  5. উদাহরণস্বরূপ: echo "hello world"নীচের ছবিতে দেখানো হয়েছে।
  6. আপনার নির্দিষ্ট সমস্যার জন্য, নির্দিষ্ট সমাধানটি হ'ল লাইনে প্রবেশ করা:sudo ./xmr-stak-cpu
  7. এর সাথে সম্পাদকটি বন্ধ করুন: ctrl+x
  8. ফাইলটি সংরক্ষণ করুন Y
  9. উবুন্টু প্রস্থান করুন
  10. উবুন্টু পুনরায় আরম্ভ করুন এবং আপনার ব্যবহারকারীনের আগে হ্যালো দুনিয়াটি মুদ্রিত হয়েছে তা যাচাই করুন।

! [ডাব্লুএসএল উবুন্টু বুট করার পরে কার্যকর করা .bashrc এ একটি উদাহরণ কমান্ড]] 1

উদাহরণস্বরূপ, .bashrcআপনি এটি সম্পাদনার পরে আপনার দেখতে দেখতে এটির মতো হতে পারে : (আমি কেবল উপরে প্রথম লাইনটি যুক্ত করেছি, বাকী ইতিমধ্যে আমার সেটআপটিতে ছিল))

sudo -i service cron start
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)
        color_prompt=yes
    else
        color_prompt=
    fi
fi

ক্রোনজব পরিষেবা সক্ষম করতে আপনি hello worldকমান্ডটি প্রতিস্থাপন করতে পারেন sudo service cron start। তবে তারপরেও আপনাকে নিজের পাসওয়ার্ডটি ম্যানুয়ালি প্রবেশ করতে হবে।

৩. পাসওয়ার্ডের জন্য প্রম্পট অপসারণ: ব্যবহার করে: https://askubuntu.com/questions/147241/execute-sudo-without-password

  1. ডাব্লুএসএল উবুন্টু 16.04 (টার্মিনাল) খুলুন
  2. sudo visudo
  3. ফাইলের নীচের অংশে অ্যাড লাইন: <your WSL ubuntu username> ALL=(ALL) NOPASSWD: ALL
  4. যেমন zq ব্যবহারকারীর নাম সহ আপনি নীচের লাইনটি ফাইলের নীচে যুক্ত করবেন:
  5. zq ALL=(ALL) NOPASSWD: ALL
  6. প্রস্থান করতে ctrl + x
  7. yদ্বারা অনুসরণ <enter>সংরক্ষণ করুন।
  8. তারপরে আবার উবুন্টু বন্ধ করুন এবং এটি আবার খুলুন এবং যাচাই করুন
  9. আপনি পাসওয়ার্ডের জন্য প্রম্পট না করে আপনি ডাব্লুএসএল উবুন্টু 16.04 বুট করুন / খুললে ক্রোন পরিষেবা স্বয়ংক্রিয়ভাবে চলমান।
  10. (আপনি কমান্ড দিয়ে চেক করতে পারেন:। sudo service cron status)

বুটে পাসওয়ার্ডের অনুরোধ রোধ করার কোডটি উদাহরণস্বরূপ দেখতে হবে (আমি কেবলমাত্র শেষ লাইনটি যুক্ত করেছি, বাকিটি আমার সেটআপটিতে ইতিমধ্যে ছিল):

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/s$
# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
%sudo ALL=NOPASSWD: /etc/init.d/cron
zq ALL=(ALL) NOPASSWD: ALL

এই সমাধানের দিকে কাজ করে, আমি শিখেছি ক্রোনজবগুলি স্টার্টআপের মতো নির্দিষ্ট ইভেন্টের পরিবর্তে জিনিসগুলি নিয়মিতভাবে চালানোর উদ্দেশ্যে করা হয়। ডাব্লুএসএল শুরুতে জিনিসগুলি চালানোর জন্য আপনি ফাইলটি ব্যবহার করতে পারেন /home/<username>/.bashrc


1
.bashrcআপনার উত্তরে ফাইল থেকে একটি বিভাগ অনুলিপি করুন যাতে পাঠক সম্পাদনা করার পরে এটি দেখতে কেমন তা জানতে পারেন।
বিশ্বব্রিयो

@ বিসবাপ্রিও, আপনার মতামতের জন্য আপনাকে ধন্যবাদ প্রাথমিকভাবে আমি সেই কোডটির একটি স্ক্রিনশট যুক্ত করেছি তবে এটি কাজ করতে পারা যায় না। তাই আমি আসল কোডটি পেস্ট করেছি।

2

এটি ডাউনলোড করুন -> https://github.com/troytse/wsl-autostart

এবং রেজিস্ট্রি / গোষ্ঠী নীতি / টাস্কএসডি সেটআপ করার নির্দেশাবলী অনুসরণ করার পরিবর্তে start.vbsআপনার স্টার্টআপ ফোল্ডারে কেবল একটি শর্টকাট ফেলে দিন :

"C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

অথবা সিস্টেম স্টার্টআপ ফোল্ডার

"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

দুর্দান্ত কাজ!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.