google-drive-ocamlfuse
부팅 시 Fedora 35 Linux를 마운트 하려고 합니다 .
설치했는데 opam
성공적으로 설치되었습니다 google-drive-ocamlfuse
.
이것은 WiFi를 사용하여 인터넷에 연결된 노트북에 있기 때문에 부팅 시 실행할 bash 스크립트를 만들었습니다.google-drive-ocamlfuse
위키에서 다음 지침을 따르세요 .:
#!/bin/bash
while true; do
# check to see if there is a connection by pinging a Google server
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then
# if connected, mount the drive and break the loop
/home/myusername/.opam/default/bin/google-drive-ocamlfuse /home/myusername/GoogleDrive; break;
else
# if not connected, wait for one second and then check again
sleep 1
fi
done
스크립트를 에 넣었습니다 /usr/local/bin
. 하지만 위키의 소개에는 에 넣으라고 나와 있습니다 /home/username/bin
. 이것이 왜 어떤 식으로든 중요한지 모르겠습니다.
에서 스크립트를 실행해야 하는 /etc/systemd/system
systemd 서비스를 만들었습니다 .mount-google-drive.service
[Unit]
Description=Run shell script to launch google-drive-ocamlfuse at startup
[Service]
User=myusername
Group=myusername
ExecStart=/usr/local/bin/mount-google-drive-ocamlfuse.sh
[Install]
WantedBy=multi-user.target
수동으로 실행 하면 $ /usr/local/bin/mount-google-drive-ocamlfuse.sh
Google Drive 폴더가 제대로 마운트됩니다. 그러나 시작 시 스크립트를 성공적으로 실행하기 위해 systemd 서비스를 얻을 수 없는 것 같습니다.
내 .I에서 실행 하고 다시 시작 하도록 ~/.bashrc
파일을 수정했습니다 .export PATH=$PATH:$HOME/.opam/default/bin/
google-drive-ocamlfuse
$PATH
$ sudo systemctl daemon-reload
/usr/local/bin/mount-google-drive-ocamlfuse.sh
허가를 받으십시오 -rwxr-xr-x
.
/etc/systemd/system/mount-google-drive.service
허가를 받으십시오 -rwxr-xr-x
.
내가 실행할 때 $ sudo systemctl status mount-google-drive.service
systemd가 스크립트를 실행하는 것 같지만 어떤 이유로 스크립트가 실행되지 않습니다.실제로설치 ~/GoogleDrive
폴더:
$ sudo systemctl status mount-google-drive.service
○ mount-google-drive.service - Run shell script to launch google-drive-ocamlfuse at startup
Loaded: loaded (/etc/systemd/system/mount-google-drive.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sun 2021-12-05 22:36:19 CST; 2min 58s ago
Process: 1360 ExecStart=/usr/local/bin/mount-google-drive-ocamlfuse.sh (code=exited, status=0/SUCCESS)
Main PID: 1360 (code=exited, status=0/SUCCESS)
CPU: 67ms
Dec 05 22:36:11 fedora systemd[1]: Started Run shell script to launch google-drive-ocamlfuse at startup.
Dec 05 22:36:11 fedora mount-google-drive-ocamlfuse.sh[1382]: ping: connect: Network is unreachable
Dec 05 22:36:12 fedora mount-google-drive-ocamlfuse.sh[1573]: ping: connect: Network is unreachable
Dec 05 22:36:13 fedora mount-google-drive-ocamlfuse.sh[1614]: ping: connect: Network is unreachable
Dec 05 22:36:14 fedora mount-google-drive-ocamlfuse.sh[1616]: ping: connect: Network is unreachable
Dec 05 22:36:15 fedora mount-google-drive-ocamlfuse.sh[1618]: ping: connect: Network is unreachable
Dec 05 22:36:16 fedora mount-google-drive-ocamlfuse.sh[1620]: ping: connect: Network is unreachable
Dec 05 22:36:17 fedora mount-google-drive-ocamlfuse.sh[1622]: ping: connect: Network is unreachable
Dec 05 22:36:19 localhost-live.lan systemd[1]: mount-google-drive.service: Deactivated successfully.
myusername
스크립트가 실제로 실행되고 있는지 확인하기 위해 실행했고 $ su - myusername -c 'bash /usr/local/bin/mount-google-drive-ocamlfuse.sh'
드라이브가 예상대로 완벽하게 마운트되었습니다.
~/GoogleDrive
systemd가 스크립트를 "성공적으로" 실행하는 것처럼 보이지만 실제로는 bash 스크립트를 수동으로 실행할 때처럼 폴더를 마운트하지 않는 이유는 무엇입니까 ?google-drive-ocamlfuse
답변1
모든 " ~
"을(를) 전체 경로로 바꾸십시오. " ~
"는 기능입니다 $SHELL
. 예를 들어 .make verify( ) /home/user240467/GoogleDrive
대신 mount가 존재하는지 확인하세요.~/GoogleDrive
man mkdir
/home/user240467/GoogleDrive
내 스크립트를 다운로드하고, 사용하고, 수정할 수 있습니다 net-o-matic
.
이 문제를 해결하기 위해 bash 스크립트를 작성했습니다. https://github.com/waltinator/net-o-matic
연결을 모니터링하고 연결이 끊어지면 사용자가 지정한 작업을 수행하여 다시 연결을 시도합니다.