Dopo aver impostato un processo cron, sto provando a: abilitare automaticamente il servizio cron quando apro l'app Ubuntu 16.04 per il sottosistema Windows per Linux dall'App Store di Windows.
Attualmente sto cercando di raggiungere questo obiettivo simulando:
- Apri WSL Ubuntu
- accedere
sudo service cron start
<enter>
Per fare ciò, ho trovato ubuntu1604.exe, mi sono reso proprietario e mi sono dato il permesso di leggere scrivere e aprire ubuntu1604.exe.
Successivamente, apro cmd
in modalità amministratore, sfoglio: C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_1604.2018.510.0_x64__79rhkp1fndgsc
e accedo: ubuntu1604.exe
per verificare sono stato in grado di aprire WSL Ubuntu da cmd senza che mi venisse richiesto nulla. Lo ero, dato che ha appena aperto Ubuntu nella stessa cmd
finestra (visibile grazie al verde <user>@<pcname>:~$
visualizzato nella cmd
).
Successivamente ho provato a passare un argomento al WSL Ubuntu mentre lo aprivo con:
ubuntu1604.exe run echo "hello world"
ubuntu1604.exe echo "hello world"
ubuntu1604.exe -c echo "hello world"
ubuntu1604.exe -c
Però:
- Restituisce
hello world
ma non apre WSL Ubuntu. - Restituisce una forma di documentazione su come avviare una distribuzione Linux (allegata nella figura seguente).
- Restituisce
hello world
ma non apre WSL Ubuntu. - Apre Ubuntu nella posizione del percorso cmd corrente, ma non viene eseguito
Quindi ho provato ad aprirlo da uno script batch o uno script PowerShell con:
- Script batch
test1.bat
:
start /d "C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_1604.2018.510.0_x64__79rhkp1fndgsc" ubuntu1604.exe echo "hello world"
Script batch:
test2.bat
Process.Start("C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_1604.2018.510.0_x64__79rhkp1fndgsc\ubuntu1604.exe", "echo "hello world"");
Script Powershell:
test3.ps1
Process.Start("C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu16.04onWindows_1604.2018.510.0_x64__79rhkp1fndgsc\ubuntu1604.exe", "echo "hello world"");
- Script Powershell:
test4.ps1
Process.Start ("C: \ Programmi \ WindowsApps \ CanonicalGroupLimited.Ubuntu16.04onWindows_1604.2018.510.0_x64__79rhkp1fndgsc \ ubuntu1604.exe", echo "hello world"); `
Anche se:
- Apre una grande schermata nera e si chiude in uno sfarfallio.
- Process.Start non è riconosciuto come comando interno o esterno
- Non è in linguaggio PowerShell
- Non è in linguaggio PowerShell.
Ora sono consapevole che forse l'opzione per passare qualsiasi argumen che può eseguire un comando senza l'interazione dell'utente all'avvio di WSL ubuntu1604 potrebbe essere disabilitata poiché è un'app dell'app store (o per qualsiasi altro motivo).
Quindi:
- Se qualcuno sa se la mia sintassi è corretta ma la mia intenzione
non sarà possibile in questo modo, per favore fatemi sapere. - Se è possibile ma lo sto facendo male, apprezzerei qualsiasi feedback su ciò che sto facendo di sbagliato, o una soluzione che lo fa bene.